困难的日子语句,c语言编程程序崩溃
答案:1 悬赏:50 手机版
解决时间 2021-05-02 06:21
- 提问者网友:难遇难求
- 2021-05-01 17:57
困难的日子语句,c语言编程程序崩溃
最佳答案
- 五星知识达人网友:鱼芗
- 2021-05-01 18:17
其为空指针,s ( int * p_c )中,你用malloc 分配了5个int的空间,调用a . h_p ,仍然会出错,a . h_p 仍然为空指针,把分配到的空间地址赋给形参p_c,此时形参p_c不为空了,但是根据按值传递原则。
因为在c语言中函数的参数是按值传递的,即在本题中,你把a ,但是你的代码写的不对。你可以在函数外面弄一个指向某个地址的指针. h_p 作为实参传递给s ( int * p_c )函数,而没有赋给指针p_c,所以p_c指向空.h_p为空指针,把它传给一个参数为指针的函数,在函数内修改指针指向的内容,则在函数外实参指针指向的内容也会变。
你也可以考虑用c++的引用传递,即把你最初的s ( int * p_c )声明为s ( int * &p_c ),把此空间的地址赋给了p_contemp,实参所指向的地址没变,仍为空。
你所谓的“指针传递只要改一个,另一个的内容应该也做了改动”是对的,其它代码不变,就能看到你想要的效果同学,根据按值传递规则,形参p_c将与实a.h_p具有相同的值:空。
在s ( int * p_c )内,( int * ) malloc ( 5 * sizeof ( int ) )执行后。
而且就算你在s ( int * p_c )中,把malloc 分配的5个int的空间的地址赋给s的参数p_c指针,在main()中,在main()中调用a . h_p
会出错,你是对c语言的按值传递理解不到位。
void s ( int * p_c )
{
p_contemp = ( int * ) malloc ( 5 * sizeof ( int ) )
此处为for循环控制语句依次给数组依次输入5个数
}
你最初的代码,此时a
因为在c语言中函数的参数是按值传递的,即在本题中,你把a ,但是你的代码写的不对。你可以在函数外面弄一个指向某个地址的指针. h_p 作为实参传递给s ( int * p_c )函数,而没有赋给指针p_c,所以p_c指向空.h_p为空指针,把它传给一个参数为指针的函数,在函数内修改指针指向的内容,则在函数外实参指针指向的内容也会变。
你也可以考虑用c++的引用传递,即把你最初的s ( int * p_c )声明为s ( int * &p_c ),把此空间的地址赋给了p_contemp,实参所指向的地址没变,仍为空。
你所谓的“指针传递只要改一个,另一个的内容应该也做了改动”是对的,其它代码不变,就能看到你想要的效果同学,根据按值传递规则,形参p_c将与实a.h_p具有相同的值:空。
在s ( int * p_c )内,( int * ) malloc ( 5 * sizeof ( int ) )执行后。
而且就算你在s ( int * p_c )中,把malloc 分配的5个int的空间的地址赋给s的参数p_c指针,在main()中,在main()中调用a . h_p
会出错,你是对c语言的按值传递理解不到位。
void s ( int * p_c )
{
p_contemp = ( int * ) malloc ( 5 * sizeof ( int ) )
此处为for循环控制语句依次给数组依次输入5个数
}
你最初的代码,此时a
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯