タグ

ブックマーク / qiita.com/yohhoy (2)

  • レガシーAPIとstd::unique_ptr - Qiita

    C++標準ライブラリで「スマートポインタ型」が提供されるようになり、現代のC++プログラムでは生ポインタ型(T*)+new/deleteによる自前メモリ管理の手間と危険性から解放されました。 今どきC++アプリケーションのソースコードで手動メモリ管理をべた書きなんてしませんよね? レガシーAPIのリソース管理 ...と言い切りたいところですが、現実問題としてはレガシーなC APIのみ提供される3rd Partyライブラリを使わざるを得ない場面はまだまだ存在します。 この手のライブラリAPIではリソース管理に生ポインタを用い、手動のメモリ確保+解放相当関数が提供されるインタフェースが一般的です。1 // レガシーAPIを提供する3rd Partyライブラリのヘッダ // 各関数は成功=値0/失敗=非0エラーコードを返す // リソース型(宣言のみ) struct Resource; // メ

    レガシーAPIとstd::unique_ptr - Qiita
    Itisango
    Itisango 2023/12/06
  • C言語分かってなかった (I Do Not Know C) - Qiita

    Dmitri Gribenko氏によるBlog記事 "I Do Not Know C" より訳出。原文および訳文のライセンスは CC BY-SA 3.0 に従う。 この記事の目的は、皆に(とくにCプログラマに)「C言語分かってなかった」と言わせることです。 C言語の死角は思っているよりも身近にあり、よくある単純なコードですら 未定義動作(undefined behavior) を含む可能性があると示したいと思います。 記事は質問に対する回答の形をとります。全ての例示コードは別々のファイルに分かれていると考えてください。 (訳注:Qiita/Markdown表現の制約から、読中ネタバレ防止のため文章順序を変更しています。前半には質問のみを、後半には質問と回答の対を訳出しました。) 質問編 1.

    C言語分かってなかった (I Do Not Know C) - Qiita
  • 1