| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1080 人关注过本帖
标题:异常中断!麻烦各位了
只看楼主 加入收藏
sdg430
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2010-5-17
结帖率:66.67%
收藏
 问题点数:0 回复次数:3 
异常中断!麻烦各位了
#include <stdio.h>
#include <string.h>
#define max 10
int main()
{
    char *pstr="abcdef";
    int steps=3;
    int n=strlen(pstr)-steps;
    char tmp[max];
    strcpy(tmp,pstr+n);
    strcpy(tmp+steps,pstr);
    *(tmp+strlen(pstr))='\0';
    strcpy(pstr,tmp);
    printf("%s",*pstr);
    getchar();
    return 0;
}
在VS2008中执行后弹出

“wei.exe 中的 0x1026f689 (msvcr90d.dll) 处未处理的异常: 0xC0000005: 写入位置 0x00415740 时发生访问冲突”
这个要怎么解决,应该是内存冲突,但怎么改呢?我是菜鸟,麻烦各位了!
 
搜索更多相关主题的帖子: 麻烦 
2010-06-28 20:31
最近不在
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:204
专家分:842
注 册:2010-2-28
收藏
得分:0 
程序代码:
#include <stdio.h>
#include <string.h>
#define max 10
int main()
{
    char *pstr="abcdef";   //pstr指向的是常量存储区,不能修改常量即所指向的内容“abcdef” ,所以  strcpy(pstr,tmp);会存在问题。解决方法char pstr[] = "abcdef"
    int steps=3;
    int n=strlen(pstr)-steps;
    char tmp[max];
    strcpy(tmp,pstr+n);
    strcpy(tmp+steps,pstr);
    *(tmp+strlen(pstr))='\0';
    strcpy(pstr,tmp);
    printf("%s", *pstr);   //改为 printf("%s", pstr),第二个参数地址值,所以不需要加*
       getchar();
    return 0;
}
2010-06-28 20:53
sdg430
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2010-5-17
收藏
得分:0 
回复 2楼 最近不在
谢谢版主了,在这里学到很多东西!
2010-06-29 14:47
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:0 
建议你去看看我发的那个内存管理的帖子。

南国利剑
2010-06-30 19:06
快速回复:异常中断!麻烦各位了
数据加载中...
 
   



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

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