【发布时间】:2011-08-30 10:36:56
【问题描述】:
我是 C++ 新手,只是想掌握它。通常看起来还不错,但我偶然发现了这种奇怪/病态的段错误行为:
int main () {
int* b;
*b = 27;
int c = *b;
cout << "c points to " << c << endl; //OK
printf( "b points to %d\n", *b); //OK
// cout << "b points to " << (*b) << endl; - Not OK: segfaults!
return 0;
}
这个程序,如给定的,产生你所期望的:
c points to 27
b points to 27
另一方面,如果您取消对倒数第二行的注释,您会得到一个在运行时崩溃(seg-fault)的程序。为什么?这是一个有效的指针。
【问题讨论】:
标签: c++ pointers segmentation-fault cout