下面的小程序的行为是未定义的,可能在运行时失败。问题出在哪里?怎样改正它?改正并运行这个程序

来源:百度知道 编辑:UC知道 时间:2024/06/17 01:38:26
int foobar( int *pi ) {
*pi = 1024;
return *pi;
}
int main() {
int *pi2 = 0;
int ival = foobar( pi2 );
return 0;
}

你的主程序里面指针根本就没有空间存放函数的数据所以会报错,
只要加开辟空间就行了
int foobar( int *pi ) {
*pi = 1024;
return *pi;
}
int main() {
int *pi2 = new int;
int ival = foobar( pi2 );
delete pi2;
return 0;
}

int foobar( int *pi ) {
*pi = 1024;
return *pi;
}
int main() {
int pi2 = 0;
int ival = foobar( &pi2 );
return 0;
}

不知道你想干什么!

int foobar( int *pi ) {
int b=1024;
pi = &b;
return *pi;
}
int main() {
int a=0;
int *pi2;
pi2= &a;
int ival = foobar( pi2 );
return 0;
}