这不起作用:
void function(char* var)
{
var = (char*) malloc (100);
}
int main()
{
char* str;
function(str);
strcpy(str, "some random string");
printf("%s\n", str);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这样做:
void function(char* var)
{
//var = (char*) malloc (100);
}
int main()
{
char* str;
//function(str);
str = (char*) malloc (100);
strcpy(str, "some random string");
printf("%s\n", str);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
为什么?
Ara*_*raK 14
您必须传递指针的地址以在函数内分配您想要的地址,否则您只是传递它的副本:
void function(char** var)
{
*var = malloc (100);
}
int main()
{
char* str;
function(&str);
strcpy(str, "some random string");
printf("%s\n", str);
return 0;
}
Run Code Online (Sandbox Code Playgroud)