我遇到以下类型代码的问题:
int* myPointer1 = malloc(50 * sizeof(int));
int* myPointer2 = malloc(50 * sizeof(int));
free(myPointer1);
myPointer1 = myPointer2;
myPointer1[0] = 3;
我遇到了分段错误。有什么问题?
答案 0 :(得分:3)
问题不在此代码中。您发布的代码段似乎是正确的,并且可以单独使用。
答案 1 :(得分:2)
你的代码是正确的,它们没有错,但你习惯于测试malloc()函数的返回值,如果它是NULL,它会在你的程序中产生问题,在我们的例子中是malloc的内存分配()函数失败