我已经看到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
分配。
关于c - 计算malloc()和realloc()大小的正确方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23052440/