VIPPERでもわかるプログラミングver3
■ このスレッドは過去ログ倉庫に格納されています
0282デフォルトの名無しさん
2005/12/11(日) 11:58:28>mystrcatが先頭アドレスを指すポインタって事だろへっへっへ
mystrcat()は関数だよ。
>while(*out++);はアドレスを最後まで進める意味だろへっへっへ
Cでは0でない値は真。0が偽。
アドレスを最後まで進めるのは間違いで、この場合ヌル文字(ヌル文字の値は0)まで進めるっていう意味だな。
++(後置インクリメント)演算子が付いているので、真でも偽でも型のサイズだけ(ここ重要)outのアドレスを進める。
>*retは漏れも分かんないお・・・多分エラー対処だろへっへっへ
char *ret = out; /* retにoutのアドレスを代入. */
strcat(3)の仕様上第一引数の先頭アドレスを返すことになってるんだよ。
while (*out++)とかしたらoutのアドレスが変わってしまうだろ?
だからあらかじめ値をコピーしておくんだよ。
■ このスレッドは過去ログ倉庫に格納されています