C/C++の宿題を片付けます 105代目
■ このスレッドは過去ログ倉庫に格納されています
0736デフォルトの名無しさん
2008/04/30(水) 20:28:30>>734です。
>dstがインクリメントされてない方がきになる
すみません。投稿ミスです。
★再掲載。
文字列をコピーする関数を作成せよという問題が出て、
下のように回答したら×を付けられました。
void x_strcpy(char *dst, const char *src)
{
do {
*dst++ = *src;
} while (*src++ != '\0');
}
教授からの指摘は、次のとおりです。
「*src が '\0' を評価した後に ++ されて src の領域外に出ている。アクセス違反が起きる」
ポインタによる領域外の値は、その領域への参照(評価時など含む)、または書き込みしなければ無害ですよね?
char *s = "abc"; として
s += 10000; としても、s を参照(評価)、書き込みしなければ問題ないですよね?
■ このスレッドは過去ログ倉庫に格納されています