[過去ログ]
WindowsやめてLinuxデスクトップ! 18 (1002レス)
WindowsやめてLinuxデスクトップ! 18 http://mao.5ch.net/test/read.cgi/linux/1551033123/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
209: login:Penguin [sage] 2019/03/03(日) 11:16:32.33 ID:qQ9zv7RF 局所的には更に↓のように注意深くコーデイングした方が良いと思う、ただし完璧とまでは言わない。 for (int j = 0; j < n; j++) { if (resp[j]->resp != nullptr) free(resp[j]->resp); // nullかも知れないのに確認もなくfreeは怖い resp[j]->resp = nullptr; } >>198 提案・提起だと解釈したので、放っておくより断然良いと考える。 「他の箇所でまだ覚えていると局所的に正い修正が裏目に出る」と言うなら確保したヒープメモリを 操作する時に例えば↓の1ステップを入れると言うコーデイング規約を入れれば更に良くなるのでは。 if (resp[j]->resp != nullptr) それで free() に関してはWindowsアプリでも同様な問題を抱えてるとは思うけど Linux固有の問題点は何か? http://mao.5ch.net/test/read.cgi/linux/1551033123/209
214: login:Penguin [sage] 2019/03/03(日) 13:42:53.27 ID:3B6Ht3mr >>209 俺はLinux固有の問題などと言っていない それから次のくだりは話のすり替えだ 新規開発するならともかく既にリリースされているソフトでヒープメモリを使う箇所を全て修正せよと言っても仕方ない >確保したヒープメモリを操作する時に例えば↓の1ステップを入れると言うコーデイング規約を入れれば更に良くなるのでは。 >if (resp[j]->resp != nullptr) それにif文の条件式がtrueなった時のリカバー処理に何を書くの? 致命的エラーだから結局プロセスを終了させるだけじゃないの? ヒープメモリの確保が想定通りに出来ていないのだからまともなリカバー処理を書きようがないでしょ アチコチにnullポインタチェックを入れてコードの可読性を落としてまでやる事かよく考えるべきだよ http://mao.5ch.net/test/read.cgi/linux/1551033123/214
227: login:Penguin [sage] 2019/03/03(日) 15:44:17.21 ID:6FcsFLpM >>226 パッチの話は元々 >>189 が苦し紛れにふった話題 >>209 「注意深くコーデイング」するならnullポインタのチェックはいらない n回のループはi回で良い http://mao.5ch.net/test/read.cgi/linux/1551033123/227
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.028s