【发布时间】:2011-03-15 16:50:50
【问题描述】:
我有这段代码可以按预期编译和工作:
#include <iostream>
using namespace std;
int fun(int* p){
*p = 20;
return 1;
}
int main(){
int* number;
*number =10;
cout << "before: "<<*number<<endl;
fun(number);
cout << "after: "<<*number<<endl;
return 1;
}
虽然以下给出了分段错误:
#include <iostream>
using namespace std;
int fun(int* p){
*p = 20;
return 1;
}
int main(){
int test=1; //ADDITION
int* number;
*number =10;
cout << "before: "<<*number<<endl;
fun(number);
cout << "after: "<<*number<<endl;
return 1;
}
我正在使用g++ test.cpp -o test进行编译
谁能解释一下这种行为是从哪里来的?
【问题讨论】: