【发布时间】:2014-05-27 23:04:12
【问题描述】:
我见过 malloc() 和 realloc() 使用了很多不同的方法。在测试了各种方法之后,我很想知道我是否正确使用它们??
第一次尝试
int size = rowSize * colSize;
int newSize = size + rowSize;
int *randomNum;
randomNum = malloc(size * sizeof *randomNum);
randomNum = realloc(randomNum, newSize * sizeof *randomNum);
这行得通!
然后我尝试了,
int size = rowSize * colSize;
int newSize = size + rowSize;
int *randomNum;
randomNum = malloc(size * sizeof(int));
randomNum = realloc(randomNum, newSize * sizeof(int));
这也有效。所以我想我不知道为什么我会使用“sizeof *some_name”而不是“sizeof(int)”?有理由使用其中一个吗?
【问题讨论】:
-
为了正确,您应该在覆盖旧的之前检查
realloc()的返回值。 -
谢谢glglgl,你能给我举个例子吗?
-
@glglgl,好吧,我想我找到了一个例子,谢谢你的提示!