| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1046 人关注过本帖
标题:帮我看看 这个为什么出现内存错误。
取消只看楼主 加入收藏
theperfact
Rank: 1
等 级:新手上路
帖 子:15
专家分:8
注 册:2009-8-8
结帖率:66.67%
收藏
 问题点数:0 回复次数:4 
帮我看看 这个为什么出现内存错误。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void main()
{
    char str1[]={"foewj"};
    int a=strlen(str1);
    printf("%d\n",a);
    char *str2;
    if((str2=(char *)malloc(a+3))==NULL)
    {
        printf("Memory error");
    }
    strcpy(str2,str1);
    printf("%s\n",*str2);
}
搜索更多相关主题的帖子: 内存 
2010-03-23 08:48
theperfact
Rank: 1
等 级:新手上路
帖 子:15
专家分:8
注 册:2009-8-8
收藏
得分:0 
谁能看出问题在哪,?给我讲讲,谢谢
2010-03-23 08:55
theperfact
Rank: 1
等 级:新手上路
帖 子:15
专家分:8
注 册:2009-8-8
收藏
得分:0 
  谢谢 看来是我概念问题没搞清楚。
2010-03-23 08:57
theperfact
Rank: 1
等 级:新手上路
帖 子:15
专家分:8
注 册:2009-8-8
收藏
得分:0 
#include <string.h>
#include <stdlib.h>
void main()
{
    char str1[]={"foewj"};
    int a=strlen(str1);
    printf("%d\n",a);
    char *str2;
    //又出问题,下边才开辟了2个字节怎么能把str1放进去的??
    if((str2=(char *)malloc(a-3))==NULL)
    {
        printf("Memory error");
    }
    strcpy(str2,str1);
    printf("%s\n",str2);
}
2010-03-23 09:04
theperfact
Rank: 1
等 级:新手上路
帖 子:15
专家分:8
注 册:2009-8-8
收藏
得分:0 
恩,这个我知道问题是我只开辟了a-3个位数的空间,
那他是不是应该只输出一个字符。 实际结果是我无论减几都5个字符全输出。
2010-03-23 09:17
快速回复:帮我看看 这个为什么出现内存错误。
数据加载中...
 
   



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

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