文字列から重複する文字を削除する非常に単純なプログラムを書いています。Visual Studioを実行したところ、エラーが発生しました。
inteviews.exeの0x00d110d9で未処理の例外:0xC0000005:アクセス違反の書き込み場所0x00d27830。
何が問題なのか本当にわかりません。現在のセルは次のセルの値を取得します。
void remove(char *str, char a) {
while (*str != '\0') {
if (*(str+1) == a) {
remove(str + 1, a);
}
*str = *(str +1 );//HERE I GET THE ERROR
++str;
}
}
int _tmain(int argc, _TCHAR* argv[])
{
char *str = "abcad";
while (*str != '\0') {
remove(str,*str);
str++;
}
std::cout << str << std::endl;
return 0;
}
編集:
すでにに変更しようとしましたchar str[] = "abcad"
が、それでも同じエラーが発生します。