指针问题,还是不懂
为什么这段代码有问题:void GetMemory(char *p)
{
p=(char*)malloc(100); //为什么这里修改p的值是并不能真正修改实参的值,讲解详细点
}
void Text(void)
{
char* str=NULL;
GetMemory(str);
strcpy(str,"hollo");
printf(str);
}
下面这两段代码都正确:
void GetMemory(char **p)
{
*p=(char*)malloc(100);
}
void Text(void)
{
char* str=NULL;
GetMemory(str);
strcpy(&str,"hollo");
printf(str);
}
char* GetMemory(char *p)
{
p=(char*)malloc(100);
return p;
}
void Text(void)
{
char* str=NULL;
str=GetMemory(str);
strcpy(str,"hollo");
printf(str);
}