当前位置: 代码迷 >> C语言 >> [求助]关于指针分配内存的问题
  详细解决方案

[求助]关于指针分配内存的问题

热度:289   发布时间:2006-09-09 21:41:11.0
[求助]关于指针分配内存的问题

这是我去一家公司的面试题目,麻烦大家帮忙解决一下
谢谢!
void GetMemory(char *p)
{
p=(char *)malloc(100);
}

void Test(void)
{
char *str=NULL;
GetMemory(str);
strcpy(str,"Hello!");
printf("%s",str);
}
请问上述程序在运行时候有什么错误,分析错误原因并修改给出答案,另注:不许增删语句。

搜索更多相关的解决方案: 内存  指针  str  void  char  

----------------解决方案--------------------------------------------------------

void GetMemory(char **p)
{
*p=(char *)malloc(100);
}

void Test(void)
{
char *str=NULL;
GetMemory(&str);
strcpy(str,"Hello!");
printf("%s",str);
}
函数形参和实参是不同的存储空间。


----------------解决方案--------------------------------------------------------
以下是引用ldk0501在2006-9-9 21:41:11的发言:

这是我去一家公司的面试题目,麻烦大家帮忙解决一下
谢谢!
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);
}


----------------解决方案--------------------------------------------------------

这题目看到N多次了

改的是指针本身的值,当然得用引用


----------------解决方案--------------------------------------------------------
以下是引用眼底星空在2006-9-9 22:04:35的发言:

这题目看到N多次了

改的是指针本身的值,当然得用引用


引用是c++中才有的,c中没有.


----------------解决方案--------------------------------------------------------
以下是引用ww84020209在2006-9-9 22:08:40的发言:

引用是c++中才有的,c中没有.

哦 不好意思 我说错了 不过实质是一回事
----------------解决方案--------------------------------------------------------
[QUOTE]这是我去一家公司的面试题目,麻烦大家帮忙解决一下
谢谢![/QUOTE]

作业就说是作业

我不相信哪家公司会出这种题!
----------------解决方案--------------------------------------------------------

void GetMemory(char *p)
{
p=(char *)malloc(100);
}

void Test(void)
{
char *str=NULL;
GetMemory(str); //江湖之大忌啊!传的是一个指针副本,p指向了申请的内存,但str没有啊!
strcpy(str,"Hello!");
printf("%s",str);
}


----------------解决方案--------------------------------------------------------

我懂了,谢谢各位


----------------解决方案--------------------------------------------------------
我懂了,谢谢各位
----------------解决方案--------------------------------------------------------
  相关解决方案