我是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));
似乎看似简单,这告诉我,我可能会遗漏一些东西。
答案 0 :(得分:2)
如果ptr是空指针,则该函数的行为类似于malloc,指定一个大小字节的新块并返回指向其开头的指针。
void * realloc (void* ptr, size_t size);
ptr - 指向先前使用malloc,calloc或 realloc 分配的内存块的指针。 或者,这可以是空指针,在这种情况下,分配一个新块(就好像 malloc被称为。)
sizeNew - 内存块的大小,以字节为单位。 size_t是无符号整数类型。
sizeNew必须定义你想要的整个内存,可能更小,可能更大!
答案 1 :(得分:1)
最后,你必须告诉总内存sizeto函数。