主要代码如下(不是编写给电脑的代码,只是把主要部分拿出来方便看,编译器显示代码没有语法词法错误,编译完全可通过)
struct L
{
int l ;
int *h_p
}
void s ( int * p_c )
{
p_contemp = ( int * ) malloc ( 5 * sizeof ( int ) )
此处为for循环控制语句依次给数组依次输入5个数
}
main ( )
{
struct L a
s ( a . h_p )
此处为for循环控制语句依次把数组里的数打印到屏幕上
}
经过检测发现函数调用结束以后程序崩溃
如果把函数s改为
int * s ( int * p_c )
{
p_contemp = ( int * ) malloc ( 5 * sizeof ( int ) )
此处为for循环控制语句依次给数组依次输入5个数
renturn p_c
}
主函数改为
main ( )
{
struct L a
a . h_p = s ( a . h_p )
此处为for循环控制语句依次把数组里的数打印到屏幕上
}
程序即可正常运行。
求解为什么之前的不对啊,指针传递只要改一个,另一个的内容应该也做了改动,不需要再次返回才对啊(试过很多编译器和各种不同的牌子的电脑,有VS,DEV,联想,神州,都是一样的结果。)