读书人

帮小弟我解决下字符串指针的解释有关问

发布时间: 2012-02-15 12:09:44 作者: rapoo

帮我解决下字符串指针的解释问题!
void GetMemory( char *p )


{


p = (char *) malloc( 100 );


}


void Test( void )


{


char *str = NULL;


GetMemory( str );


strcpy( str, "hello world " );


printf( str );


}


这是我在看面试题给出的答案
有些东西还是不明白
有人能帮解决吗?
试题四的给出的答案是

传入中GetMemory( char *p )函数的形参为字符串指针,在函数内部修改形参并不能真正的改变传入形参的值,执行完

char *str = NULL;
GetMemory( str );
后的str仍然为NULL;

为什么函数内部修改形参并不能真正的改变传入形参的值?函数的调用是是传递的地址传递,在函数中重新改变了p的值,为什么不能改变主函数中的str那?




[解决办法]
void GetMemory( char **p )
{
*p = (char *) malloc( 100 );
}


char *str = NULL;
GetMemory( &str );

读书人网 >C++

热点推荐