【初心者歓迎】C/C++室 Ver.26【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
0684デフォルトの名無しさん
2006/04/30(日) 20:05:55usingnamespacestd;
//chara[255];
staticchar*a="efg";
voidset(){
//a="abc";
if(strlen(a)>strlen("abc"))
strcpy(a,"abc");
}
void main()
{
set();
cout<<a;
getchar();
}
char*a;やchar*a="efg"だと、
strcpy(a,"abc");
とした瞬間に、元のaの値もアドレスもゴミとして放棄して、新しくアドレス確保してabc\0を入れてしまうんだよ。
で、ゴミがエラーとして出る。
こういう面からも安易に=は使えないよ、=はポインタ型変数で使うと参照を意味したりもする(もちろんアドレス変わる)('Д`)
■ このスレッドは過去ログ倉庫に格納されています