| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1112 人关注过本帖
标题:动态申请空间出现的乱码问题
取消只看楼主 加入收藏
明明白白
Rank: 2
等 级:论坛游民
帖 子:57
专家分:61
注 册:2012-3-19
结帖率:83.33%
收藏
已结贴  问题点数:20 回复次数:4 
动态申请空间出现的乱码问题
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

void Test(void)
{
    char *ptr = (char *)malloc(20066);
    strcpy(ptr,"helloWorld");
    free(ptr);

    if(ptr!=NULL)
    {

        int i;
        strcpy(ptr,"world");
        printf(ptr);
    }
}

int main()
{
    Test();

    return 0;
}
为什么会出现乱码现象?
搜索更多相关主题的帖子: world return include void 空间 
2012-09-16 22:14
明明白白
Rank: 2
等 级:论坛游民
帖 子:57
专家分:61
注 册:2012-3-19
收藏
得分:0 
回复 3楼 遗矢的老人
free(ptr)是释放ptr所指向的空间,但是我重新让ptr指向了“world”,为什么不能输出啊?
2012-09-16 23:08
明明白白
Rank: 2
等 级:论坛游民
帖 子:57
专家分:61
注 册:2012-3-19
收藏
得分:0 
回复 6楼 zhangqi_gsts
void Test(void)
{
    char *ptr = (char *)malloc(20066);
    strcpy(ptr,"helloWorld");
    free(ptr);   
    if(ptr!=NULL)     
   {
        int i;
        ptr = "world";
        printf(ptr);
    }
}
这样的话就可以正常输出,为什么?求教ptr="world"和strcpy(ptr,"world")一样吗?
2012-09-17 12:18
明明白白
Rank: 2
等 级:论坛游民
帖 子:57
专家分:61
注 册:2012-3-19
收藏
得分:0 
回复 6楼 zhangqi_gsts
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

void Test(void)
{
    char *ptr = (char *)malloc(20066);
    strcpy(ptr,"helloWorld");
    printf("ptr = %p\n",ptr);//加上一个printf语句就可以正常输出了,不知道问题到底出到哪里了??
    free(ptr);
    if(ptr!=NULL)
    {
        strcpy(ptr,"world");
        printf(ptr);
    }
}



int main()
{
    Test();

    return 0;
}
2012-09-17 12:35
明明白白
Rank: 2
等 级:论坛游民
帖 子:57
专家分:61
注 册:2012-3-19
收藏
得分:0 
回复 14楼 zhangqi_gsts
还有一点不明白
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

void Test(void)
{
    //我用折半法试了下
    // 这块malloc里的数在10到1900之间的话下面的printf就会正常输出,10以下会出现内存错误,1900以上会出现乱码;
    //这个不知道怎么回事?求教!
   
    char *ptr = (char *)malloc(1900);    strcpy(ptr,"helloWorld");
    free(ptr);
    if(ptr!=NULL)
    {
        strcpy(ptr,"world");
        printf(ptr);
    }
}

int main()
{
    Test();
    return 0;
}
2012-09-17 20:09
快速回复:动态申请空间出现的乱码问题
数据加载中...
 
   



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

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