据我所知,堆(heap)的性质是全局的,对吗?因此,我们应该能够在任何需要的地方访问堆内存。那么为什么下面的代码会出现段错误(Segmentation Fault)呢?
#include <stdio.h>
using namespace std;
void A(int* x)
{
x = new int[10];
for(int i = 0; i< 10; i++)
{
x[i] = i;
}
}
void B(int *x)
{
printf("%d", x[8]);
}
int main()
{
int* a = NULL;
A(a);
B(a);
return 0;
}
A
的_input_参数应该如何影响B
? - MSalters