10得票6回答
在嵌入式系统中,realloc()函数安全吗?

在开发嵌入式系统软件时,我经常使用realloc()函数。现在有人告诉我在嵌入式系统中“不应该使用realloc()”,但没有任何解释。 realloc()在嵌入式系统中是否有危险?为什么?

10得票3回答
当新的大小与旧的大小相同时,realloc的行为是什么?

我想使代码更加高效。我有类似于这样的代码: typedef struct{ ... }MAP; MAP* pPtr=NULL; MAP* pTemp=NULL; int iCount=0; while (!boolean){ ...

10得票8回答
realloc调用会引入多少开销?

我在一个迭代次数超过10000次的for循环中的每次迭代中都使用realloc。 这是一个好的做法吗?如果多次调用realloc,它会引起错误吗?

10得票4回答
总是建议使用std::vector而不是realloc公平吗?

来自Bjarne Stroustrup's FAQ: 如果你感觉需要使用realloc() - 很多人都这样认为 - 那么请考虑使用标准库的vector。 我想先声明一下,std::vector有很多优点,个人而言我总是会选择使用它而不是用C内存分配写动态数组。 但是,std::ve...

9得票6回答
如果新的块大小比初始大小小,我应该强制执行realloc检查吗?

在这种情况下,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",...

9得票2回答
alloca()函数分配的内存能否重新分配?

malloc分配的内存可以使用realloc重新分配。那么对于alloca来说有类似的函数吗?重新分配堆栈内存可能在您不希望在堆中分配内存并且需要多次分配变量堆栈内存的情况下非常有用,例如在库函数中,您需要动态内存,但又不想在堆上分配,因为库的用户可能使用自定义的堆分配策略。 int mai...

9得票5回答
realloc()无效的旧大小。

我很愉快地参加了KandR C编程书的一个习题。该程序用于在用户输入的一组字符串中查找最长的行并将其打印出来。 以下是我部分的代码,其中有些部分直接引用了书中的内容: #include <stdio.h> #include <stdlib.h> int MAXLI...

9得票1回答
如果分配器提供realloc语义,std::vector能否避免复制?

我有一个内存接口,它将获取地址空间与附加后备存储区分开。(在Linux下,接口管理的地址空间池是mmap'ed MAP_ANONYMOUS和MAP_NORESERVE、madvise'ed MADV_DONTNEED和mprotect'ed PROT_NONE。然后通过madvise MADV...

9得票7回答
realloc函数在不释放旧内存的情况下重新分配内存

我希望使用realloc来增加内存大小,同时保持指针不变(因为调用者在使用它)。然而,realloc并不总是这样做;有时会返回一个不同的指针并释放旧的指针。我想要“尝试”realloc内存,如果不可能,就回退到使用原始指针的不同方法 - 但是realloc已经摧毁了那个指针! 是否有一种方法...

8得票2回答
动态数组:使用realloc()避免内存泄漏

我使用realloc函数来重新调整内存空间大小: char **get_channel_name(void) { char **result; int n; result = (char **) 0; for (elem = snd_mixer_fir...