您的位置:首页 > 编程语言 > C语言/C++

C语言高级编程学习笔记--指针

2007-12-07 07:22 519 查看
1.malloc与指针使用
网上看到一道笔试题,关于指针的,题目如下:
void GetMemory(char *p)
{
p = (char *) malloc(100);
}
void Test(void)
{
char * str = NULL;
GetMemory(str);
strcpy(str, "Hello world");
printf(str);
}
Test的输出结果是什么?
在VC8出错,因为str是一个空指针,因为GetMemory是一个传值调用,如果是指针调用的话需要改成如下代码:
void GetMemory(char* *ppStr)
{
    *ppStr = (char*)malloc(100);
}
void TestMemory(void)
{
char * str = NULL;
GetMemory(&str);
strcpy(str, "Hello world");
printf(str);
}
此时的输出结果才为:Hello world
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: