トップページ > プログラム > 2014年05月19日 > 8OgLlmDp

書き込み順位&時間帯一覧

20 位/225 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000120100004



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
C/C++の宿題片付けます 167代目

書き込みレス一覧

C/C++の宿題片付けます 167代目
377 :デフォルトの名無しさん[sage]:2014/05/19(月) 16:32:02.51 ID:8OgLlmDp
>>371
my_strcat();みたいな処理をmainのwhile内に書いたほうが悩まずに済むと思う
C/C++の宿題片付けます 167代目
378 :デフォルトの名無しさん[sage]:2014/05/19(月) 17:35:06.77 ID:8OgLlmDp
>>371
> 上記のように作ってみたのですが、正常に動作していないようです。
> 30文字程度入力するとデータが飛ぶのでreallocあたりかと思うのですが、どこをどうすればいいのかわかりません。

これは、
 1. 28行目のfgetsで30bytesからあふれた分が次回のfgetsで拾われる
 2. 8行目で強引に終端文字を\0 にしているから文字欠けが生じている
の2つが重なったのが原因だと思います。

http://ideone.com/Ff4R0x
みたいにすれば良いかも。
C/C++の宿題片付けます 167代目
379 :デフォルトの名無しさん[sage]:2014/05/19(月) 17:58:07.75 ID:8OgLlmDp
ちなみに、realloc();が失敗した場合元のブロックは解放されたり移動されたり
しないそうなので、strのために確保したメモリは注意が必要。
C/C++の宿題片付けます 167代目
381 :デフォルトの名無しさん[sage]:2014/05/19(月) 19:14:04.33 ID:8OgLlmDp
>>378
は *str = '\0'; をしていなかった。
整っていないし…。
修正を入れた版 → http://ideone.com/X4p9LL


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。