在开发嵌入式系统软件时,我经常使用realloc()函数。现在有人告诉我在嵌入式系统中“不应该使用realloc()”,但没有任何解释。 realloc()在嵌入式系统中是否有危险?为什么?
我想使代码更加高效。我有类似于这样的代码: typedef struct{ ... }MAP; MAP* pPtr=NULL; MAP* pTemp=NULL; int iCount=0; while (!boolean){ ...
我在一个迭代次数超过10000次的for循环中的每次迭代中都使用realloc。 这是一个好的做法吗?如果多次调用realloc,它会引起错误吗?
来自Bjarne Stroustrup's FAQ: 如果你感觉需要使用realloc() - 很多人都这样认为 - 那么请考虑使用标准库的vector。 我想先声明一下,std::vector有很多优点,个人而言我总是会选择使用它而不是用C内存分配写动态数组。 但是,std::ve...
在这种情况下,realloc会失败吗? int *a = NULL; a = calloc(100, sizeof(*a)); printf("1.ptr: %d\n", a); a = realloc(a, 50 * sizeof(*a)); printf("2.ptr: %d\n",...
malloc分配的内存可以使用realloc重新分配。那么对于alloca来说有类似的函数吗?重新分配堆栈内存可能在您不希望在堆中分配内存并且需要多次分配变量堆栈内存的情况下非常有用,例如在库函数中,您需要动态内存,但又不想在堆上分配,因为库的用户可能使用自定义的堆分配策略。 int mai...
我很愉快地参加了KandR C编程书的一个习题。该程序用于在用户输入的一组字符串中查找最长的行并将其打印出来。 以下是我部分的代码,其中有些部分直接引用了书中的内容: #include <stdio.h> #include <stdlib.h> int MAXLI...
我使用realloc函数来重新调整内存空间大小: char **get_channel_name(void) { char **result; int n; result = (char **) 0; for (elem = snd_mixer_fir...