读书人

329test.exe 中的 0x004115f6 处最可能

发布时间: 2012-04-05 12:42:40 作者: rapoo

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访问越界了

读书人网 >C++

热点推荐