【发布时间】:2014-09-22 04:17:27
【问题描述】:
我有一段非常简单的 C 代码,它使用 malloc 和 realloc,但如果我更改属于第一个数组的一部分的值,它会引发 seg 错误。
#include <stdlib.h>
void increase(int** array)
{
int * new_array;
new_array = realloc(*array, 10 * sizeof(int));
if (new_array != NULL) {
*array = new_array;
}
else {
// Error in reallocation
}
int i = 3;
*array[i] = 2; // Seg fault if i = 0, 1, 2, 3
}
main()
{
int *array = malloc(4 * sizeof(int));
increase(&array);
free(array);
}
我对指针的理解有问题吗?谁能解释发生了什么以及如何正确使用 realloc?
非常感谢!
【问题讨论】:
标签: c segmentation-fault malloc realloc