トップページ > プログラム > 2015年09月05日 > zclI+Aoz

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

34 位/165 ID中時間01234567891011121314151617181920212223Total
書き込み数0000011000000000000000002



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
C言語なら俺に聞け(入門編)Part 130 [転載禁止]©2ch.net

書き込みレス一覧

C言語なら俺に聞け(入門編)Part 130 [転載禁止]©2ch.net
156 :デフォルトの名無しさん[sage]:2015/09/05(土) 05:53:52.09 ID:zclI+Aoz
>>146で微妙に触れられている気がするが、OpenCVのC言語インターフェースで使う
IplImage* image = cvCreateImage(cvSize(10, 20), IPL_DEPTH_8U, 1);
printf("width=%d, height=%d\n", image->width, image->height);
cvReleaseImage(&image); // ←imageが指すオブジェクト解放後、image=NULLになる。
ていうか動的に確保・開放するリソース管理のなら、インターフェースを
(1) 開放したらNULLになる (2) NULLの開放はNOP
のコンボにすると悩み事が3〜4個減って良い
C言語なら俺に聞け(入門編)Part 130 [転載禁止]©2ch.net
157 :デフォルトの名無しさん[sage]:2015/09/05(土) 06:10:44.38 ID:zclI+Aoz
悩み事が減るというのは、エラー処理でフローが複雑化しても単一の関数内でリソースの開放を確実に行い得る、の意味
 errt = fopen_s(&fp, "sample.txt", "w");
 if (errt != 0) { 関数を抜ける処理1; }

 p = malloc((size_t)1000000);
 if (p == NULL) { 関数を抜ける処理2; }

みたいなケースにおいて、関数を抜ける処理1, 2それぞれでfpのclose()やpの確保状況に神経を使いつつ開放処理を書く羽目になるのを回避でくる、

というと古典的なプログラマーの中にはリソースを使うだけの関数を親関数から呼んで親関数で確保と開放をせよと言い出すが
それをのべつまくなくやるのはコーディング労力の無駄遣いなので嫌


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