使用free()释放它后使用指针

时间:2011-08-16 18:35:39

标签: c pointers segmentation-fault

我遇到以下类型代码的问题:

int* myPointer1 = malloc(50 * sizeof(int));
int* myPointer2 = malloc(50 * sizeof(int));
free(myPointer1);
myPointer1 = myPointer2;
myPointer1[0] = 3;

我遇到了分段错误。有什么问题?

2 个答案:

答案 0 :(得分:3)

问题不在此代码中。您发布的代码段似乎是正确的,并且可以单独使用。

答案 1 :(得分:2)

你的代码是正确的,它们没有错,但你习惯于测试malloc()函数的返回值,如果它是NULL,它会在你的程序中产生问题,在我们的例子中是malloc的内存分配()函数失败