13得票1回答
C11中aligned_alloc分配的内存,使用realloc函数后是否保持对齐?

考虑以下(C11)代码:void *ptr = aligned_alloc(4096, 4096); ... // do something with 'ptr' ptr = realloc(ptr, 6000); 由于ptr指向的内存是通过aligned_alloc获得的4096字节对齐,那...

8得票3回答
标准C库中为什么没有像realloc()那样不需要复制数据的函数?

例如,我想要这样一个函数: char *dst = (char*)malloc(512); char *src = (char*)malloc(1024); ... dst = (char*)realloc(dst, 1024); memcpy(dst, src, 1024); 正如您所...

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",...

43得票2回答
我该包含哪个头文件来使用memcpy和realloc函数?

我正在将一个项目移植到iPhone上,其中使用了realloc和memcpy函数,但是这些函数在iPhone的库中找不到。请问需要包含哪个头文件? 这是一个混合了Objective C和C++的项目,我开始感到有些迷失。 非常感谢您的帮助!

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

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

8得票3回答
如何在C语言中正确地重新分配二维数组?

我正在尝试从输入中加载两个双精度浮点数到一个二维数组中,该数组会因用户输入而动态重新分配空间。 #include <stdio.h> #include <stdlib.h> int main(int argc, char** argv) { int co...

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

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

54得票9回答
malloc(0)返回什么?

malloc(0)返回什么? realloc(malloc(0),0)的答案是否相同?#include<stdio.h> #include<malloc.h> int main() { printf("%p\n", malloc(0)); ...

7得票3回答
调用realloc后,我需要初始化(设置为0)内存吗?

我需要实现一个简单的动态指向 typedef 类型的指针数组。 每当用户请求时,使用 realloc,数组大小会增加 sizeof(pointer)。 所以我目前的代码如下: #include <stdio.h> #include <string.h> #includ...

17得票3回答
在C++中使用realloc

std::realloc在C++中存在风险,如果malloc的内存包含非pod类型。唯一的问题似乎是,如果无法原地扩展内存,std::realloc将不会调用类型解构函数。 一个微不足道的解决方法是一个try_realloc函数。如果无法在原地增长,则它不会malloc新内存,只需返回fal...