私は単純なプログラムを持っており、アクセス違反は*(str + start)
にあります。どうして?私はそれを変更できるはずです。右?どのようにアクセス違反書き込み場所のエラーを解決するには?
void fn()
{
char *str = "Hello wordl!";
int end = strlen(str);
int start = 0;
end--;
while(start < end)
{
*(str + start) = *(str + end); <--- Access violation writing location *(str + Start).
end--;
start++;
}
}
あなたの提案が現在のコードと同じになります。 –
char str []とchar * strの結果、文字列が変更可能になります。 – Michael
ここにいくつかの参照があります: http://www.iso-9899.info/wiki/StringsByExample https://www.securecoding.cert.org/confluence/display/cplusplus/STR30-CPP.+Do + not +試み+ + +文字列+リテラルを変更する – Michael