realloc移动内存块时如何更新其他指针?
realloc 参考资料说: 该函数可能会移动内存块 到一个新位置,在这种情况下 返回新位置。 这是否意味着如果我这样做: void foo() { void* ptr = mall…
malloc(0) 返回什么?
malloc(0) 返回什么? realloc(malloc(0),0) 的答案是否相同? #include<stdio.h> #include<malloc.h> int main() { printf("%p\n", malloc(0…
由于内存原因导致realloc失败时如何处理?
问题说明了一切,但这里有一个例子: typedef struct mutable_t{ int count, max void **data } mutable_t void pushMutable(mutable_t *m, void *obj…
如果新大小更小,realloc可以移动指针吗?
我想知道 C 或 C++ 标准是否保证当以较小(非零)大小调用 realloc 时指针不会更改: size_t n=1000 T*ptr=(T*)malloc(n*sizeof(T)) //<--do someth…
为什么 Win32 HeapReAlloc() 会改变值?
我正在使用 win32 API 用 C 编写一个应用程序。 当我尝试使用 HeapRealloc() 函数扩大数组的大小时,它会更改数组中的当前值,而不是复制它们。 我用…
如果 realloc 失败,是否会释放前一个缓冲区?
如果 realloc 失败并返回 NULL,则前一个缓冲区是否被释放或保持不变?我没有在手册页中找到该特定信息,我很不确定该怎么做。如果内存被释放,那么双…
使用 gcc/linux 进行就地重新分配
有这样的事吗?我的意思是一些函数,如果可能的话,会重新分配内存而不移动它,或者如果不可能的话,什么也不做。在 Visual C 中,有 _expand 可以满…
实现动态堆栈类型的最佳方法? 或者我滥用 realloc 吗?
我使用的是一种晦涩的语言,没有本地堆栈类型,所以我实现了自己的。 现在,在网上阅读时,我发现了几种不同的方法来做到这一点。 这是我的实现(伪代…
**struct 的重新分配问题
我在 C 中的 realloc 函数上遇到问题。我向您传递了一段代码: typedef struct _Pool Pool typedef struct _Item Item struct _Pool { Item ** items …
realloc 在以前稳定的函数中崩溃
显然,SDL_Mixer 中的这个函数一直在消失,我不知道为什么。 有人有什么想法吗? 根据 Visual Studio 的说法,崩溃是由 Windows 在 realloc() 行某处…
使用 realloc 调整缓冲区大小
如果指向的区域被移动,则会出现 free(ptr) 已完成。 您能解释一下上面关于 realloc() 的内容吗? 此行来自 calloc、malloc、realloc 和 free 的手册…