标题:指针问题,还是不懂
取消只看楼主
jjg
Rank: 2
等 级:论坛游民
帖 子:67
专家分:42
注 册:2009-8-19
结帖率:46.15%
已结贴  问题点数:20 回复次数:3 
指针问题,还是不懂
为什么这段代码有问题:
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);
}
搜索更多相关主题的帖子: 指针 
2010-10-14 13:23
jjg
Rank: 2
等 级:论坛游民
帖 子:67
专家分:42
注 册:2009-8-19
得分:0 
回复 2楼 聋眼睛瞎耳朵
形参会分配内存吗?只有实参才会分配吧
2010-10-14 16:06
jjg
Rank: 2
等 级:论坛游民
帖 子:67
专家分:42
注 册:2009-8-19
得分:0 
查了下,会
2010-10-14 16:08
jjg
Rank: 2
等 级:论坛游民
帖 子:67
专家分:42
注 册:2009-8-19
得分:0 
我知道怎么回事了,还是那句老话,传地址可以修改值,而传值却不行
2010-10-14 17:22



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-322872-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.090255 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved