当前位置: 技术问答>linux和unix
pointer 指定問題
来源: 互联网 发布时间:2016-06-24
本文导语: void funcTest1(char *p) { p = (char*)malloc(sizeof(char)*20); strcpy(p, "Hello,world!"); printf("%sn", p); } int Pointer_Test8() { char *ptr_test=0; funcTest1(ptr_test); printf("%sn", ptr_test); //為什麼ptr_test的address會變回...
void funcTest1(char *p)
{
p = (char*)malloc(sizeof(char)*20);
strcpy(p, "Hello,world!");
printf("%sn", p);
}
int Pointer_Test8()
{
char *ptr_test=0;
funcTest1(ptr_test);
printf("%sn", ptr_test); //為什麼ptr_test的address會變回0,而不是funcTest1裡malloc的address呢?
free(ptr_test);
return 0;
}
{
p = (char*)malloc(sizeof(char)*20);
strcpy(p, "Hello,world!");
printf("%sn", p);
}
int Pointer_Test8()
{
char *ptr_test=0;
funcTest1(ptr_test);
printf("%sn", ptr_test); //為什麼ptr_test的address會變回0,而不是funcTest1裡malloc的address呢?
free(ptr_test);
return 0;
}
|
你传的不是地址。
|
你这个p值传到子函数里只是一个副本,也就是说子函数修改传过来的副本,并不会修改原来的p值,如果想改的话,用地址
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。