首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

329test.exe 中的 0x004115f6 处最可能的错误: 0xC0000005: 写入位置 0x00417800 时发生访问冲突

2012-04-05 
329test.exe 中的 0x004115f6 处最可能的异常: 0xC0000005: 写入位置 0x00417800 时发生访问冲突329test.e

329test.exe 中的 0x004115f6 处最可能的异常: 0xC0000005: 写入位置 0x00417800 时发生访问冲突
329test.exe 中的 0x004115f6 处最可能的异常: 0xC0000005: 写入位置 0x00417800 时发生访问冲突
#include "stdafx.h"
#include <iostream>
using namespace std;
#define Character "fgghrfdtyyujrxj"
void SortCharacter(char* c, int length);
int main(){
? int length = strlen(Character);
char *ch = Character;
SortCharacter(ch);?
cout << ch << endl;
? return ;
}
void SortCharacter(char* c, int length)
{
for(int i = 0; i < sizeof(c); i++)
{
for(int j = i + 1; j < sizeof(c); j++)
{
if(*(c + i) > *(c + j))
{
char a = *(c + i);
*(c + i) = *(c + j);
*(c + j) = a;
}
}
}
}

[解决办法]
char *ch = Character;
Character是存放在内存的静态数据,你对静态数据进行操作当然会出错了
改为malloc动态申请内存或者使用数组就可以了。
[解决办法]
当i取最大值的时候,j访问越界了

热点排行