| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 828 人关注过本帖
标题:关于指针的理解,望高手解答下!
只看楼主 加入收藏
潇湘夜雨001
Rank: 2
等 级:论坛游民
帖 子:14
专家分:28
注 册:2017-4-22
结帖率:33.33%
收藏
已结贴  问题点数:20 回复次数:1 
关于指针的理解,望高手解答下!
#include <stdio.h>  
#include <stdlib.h>  
#include <string.h>
代码段1
void GetMemory(char **p)
{
    *p = (char*)malloc(50*sizeof(int));
    //free(*p);
}

void main(void)
{
    char  * str = NULL;
    GetMemory(&str);
    strcpy(str, "hello world");
    printf("%s\n",str);
}
代码段2
void GetMemory(char *p)
{
    p = (char*)malloc(50*sizeof(int));
}

void main(void)
{
    char  * str = NULL;
    GetMemory(str);
    strcpy(str, "hello world");
    printf("%s\n",str);
}

1、代码段2,通过动态分配的空间并没有被清空,为啥不正确?
2、再就是,代码段1假如不注释也是可以正常运行的,个人感觉动态分配的空间已经释放了,应该有问题才是!
搜索更多相关主题的帖子: 指针 str 代码段 void char 
2017-09-11 00:40
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:20 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char *GetMemory(char *p)
{
    return (char*)malloc(50*sizeof(int));
}

void main(void)
{
    char *str = GetMemory(str);
    strcpy(str, "hello world");
    printf("%s\n",str);
    free(str);
}
2017-09-11 05:22
快速回复:关于指针的理解,望高手解答下!
数据加载中...
 
   



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

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