+ -
当前位置:首页 → 问答吧 → 关于指针申请内存的问题

关于指针申请内存的问题

时间:2011-12-03

来源:互联网

指针作为函数的参数,申请内存时出来问题,想不明白,请大家看一下,帮我解答一下……
复制内容到剪贴板
代码:
void GetMemory(char *p, int num)
{
p = (char *)malloc(sizeof(char) * num);
}

void Test(void)
{
char *str = NULL;
GetMemory(str, 100); // str 仍然为 NULL
strcpy(str, "hello"); // 运行错误
}

作者: isyf   发布时间: 2011-12-03

楼主请看这篇帖子,解析在第十个问的后面9 V2 o; d7 W+ ~5 c% o
引用:
http://bbs.51cto.com/thread-890491-1.html
8 T7 {* f  m& e
引用:
原帖由 isyf 于 2011-12-3 09:47 发表 & v6 a7 {$ q9 c% r
指针作为函数的参数,申请内存时出来问题,想不明白,请大家看一下,帮我解答一下……4 n9 |! b9 O/ N' m
void GetMemory(char *p, int num)* C5 j' T: J) z5 \/ f" J
{
/ J- D# g, x6 |! P" ~7 K2 Y  Ap = (char *)malloc(sizeof(char) * num);" P. O& U3 x: a, d0 w* @
}
7 \' p+ F5 Z& h! v
2 S. w  ~: t, V: N# jvoid Test(void)5 o8 R- Y# r6 t3 x
{( e8 ]' {) i5 V  l
char *str = NULL;
6 r7 P5 R3 D9 `3 s: B/ }GetMemory(str ...
3 M6 m+ x# \& f' |

& s7 |4 a1 m; A+ M3 D[ 本帖最后由 Bill_Hoo 于 2011-12-3 09:57 编辑 ]

作者: Bill_Hoo   发布时间: 2011-12-03

复制内容到剪贴板
代码:
void GetMemory(char**p, int num)
{
*p = (char *)malloc(sizeof(char) * num);
}

void Test(void)
{
char *str = NULL;
GetMemory(&str, 100); // str 仍然为 NULL
strcpy(str, "hello"); // 运行错误
}

作者: 月夜幻影   发布时间: 2011-12-03