这是我去一家公司的面试题目,麻烦大家帮忙解决一下
谢谢!
void GetMemory(char *p)
{
p=(char *)malloc(100);
}
void Test(void)
{
char *str=NULL;
GetMemory(str);
strcpy(str,"Hello!");
printf("%s",str);
}
请问上述程序在运行时候有什么错误,分析错误原因并修改给出答案,另注:不许增删语句。
[求助]关于指针分配内存的问题
这是我去一家公司的面试题目,麻烦大家帮忙解决一下
谢谢!
void GetMemory(char *p)
{
p=(char *)malloc(100);
}
void Test(void)
{
char *str=NULL;
GetMemory(str);
strcpy(str,"Hello!");
printf("%s",str);
}
请问上述程序在运行时候有什么错误,分析错误原因并修改给出答案,另注:不许增删语句。
void GetMemory(char **p)
{
*p=(char *)malloc(100);
}
void Test(void)
{
char *str=NULL;
GetMemory(&str);
strcpy(str,"Hello!");
printf("%s",str);
}
函数形参和实参是不同的存储空间。
这是我去一家公司的面试题目,麻烦大家帮忙解决一下
谢谢!
void GetMemory(char *p)
{
p=(char *)malloc(100);
}
void Test(void)
{
char *str=NULL;
GetMemory(str);
strcpy(str,"Hello!");
printf("%s",str);
}
请问上述程序在运行时候有什么错误,分析错误原因并修改给出答案,另注:不许增删语句。
str传到p是值传递,GetMemory(str)调用结束,str仍然是NULL,而NULL系统规定不能访问.
改正如下:
void GetMemory(char **p)
{
*p=(char *)malloc(100);
}
void Test(void)
{
char *str=NULL;
GetMemory(&str);
strcpy(str,"Hello!");
printf("%s",str);
}
引用是c++中才有的,c中没有.
哦 不好意思 我说错了 不过实质是一回事
我懂了,谢谢各位