我见过 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
- 如果失败,您将泄漏原始的 randomNum
分配。
关于计算 malloc() 和 realloc() 大小的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23052440/