首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-02-15 
帮我解决下字符串指针的解释问题!voidGetMemory(char*p){p(char*)malloc(100)}voidTest(void){char*str

帮我解决下字符串指针的解释问题!
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 );

热点排行