首页 > 【C语言】函数调用中参数传递的问题

【C语言】函数调用中参数传递的问题

下面这个程序有什么问题呢? C语言面试中遇到的一个问题。希望得到详细解释,非常感谢!

#include<stdio.h>   
#include<stdlib.h>  
int main(){  
     void getstr(char* str);  
     char *test;  
     getstr(test); //能否获得字符串?   
     printf("%s",test);  
     return 0;  
}  
void getstr(char *str){  
     str = (char*)malloc(1024);  
     strcpy(str,"OK?");  
}  

应该传 char**getstr 函数,不然你把 str 重新赋值后就和原来的 str 无关了。

大概是这个样子:

int main(){  
     void getstr(char* str);  
     char *test;  
     getstr(&test); //能否获得字符串?   
     printf("%s",test);
     free(test); //要记得 free 哦
     return 0;  
}

void getstr(char **str){  
     *str = (char*)malloc(1024);  
     strcpy(*str,"OK?");  
}

在c中,凡是要修改变量的值都需要传递指针.....只是这里你要修改指针的值..也就是指针的指向.

【热门文章】
【热门文章】