当我运行以下代码时,出现分段错误错误,并且无法纠正错误。
void test(int *c)
{
c++;
*c = 10;
cout<<*c<<endl;
}
int main()
{
int a =2;
int *b = &a;
test(b);
cout<<*b;
return 0;
}
我认为 b 应该指向值 '2'。但相反,它给出了一个错误。
为了什么,您将指针移到test
? 您将其移到变量的内存后面a
并达到未定义的行为。
c
|
+---+---+
| 2 | |
+---+---+
|
++c
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句