[英]realloc vs malloc in C
我对C还是很陌生,现在刚开始涉足动态分配数组的领域。
我认为我主要是在malloc
下工作,但是在realloc
上有一些问题:
realloc
还能用于其他任何用途吗? int
? 像下面这样工作吗?
float *L = NULL; int task_count = 5; L = (float*) realloc (L, task_count * sizeof(float));
如果我想进一步增加该空间(在这种情况下增加一倍),是否可以使用如下所示的内容?
L = (float*) realloc (L, 1 * sizeof(float));
似乎看似简单,但这告诉我我可能缺少某些东西。
如果ptr是空指针,则该函数的行为类似于malloc,分配一个新的大小为字节的块,并将指针返回其开头。
void * realloc (void* ptr, size_t size);
ptr-指向先前分配了malloc,calloc或realloc的内存块的指针。 或者,它可以是一个空指针,在这种情况下,将分配一个新块(就像调用了malloc一样)。
sizeNew-内存块的大小,以字节为单位。 size_t是无符号整数类型。
sizeNew必须定义您想要的整个内存,可以更小,也可以更大!
最后,您必须告诉函数总内存大小。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.