C言語なら俺に聞け(入門篇) Part 3
■ このスレッドは過去ログ倉庫に格納されています
0548475
2006/11/01(水) 00:48:08それで大体の問題は解決しますよね。
でも一回の入力で11文字以上入力するとやっぱり同じです。
無理して書くと、
while(((ch[c]=getchar())!='\n') && (c < 10)){
みたいな感じかな。もっともおすすめしないけれど。
要するに>>541だと、
ポインタchが指している領域を超えて入力が
行われる可能性があるのが問題。バッファオーバーランの類。
このソースの場合、10文字までしか文字を入力できないつもりで
書いているんだろうけど、実際には無限に無理やり書き込む
ことができるようになってるんだよね。でも領域は10文字分
しかないからセグメンテーションフォルトが起きる。
根本的に変えなきゃならない点がいくつか・・・
■ このスレッドは過去ログ倉庫に格納されています