[迷信] オブジェクトの動的生成に失敗するとメモリリークする 公開日:2021年6月16日 C/C++迷信集プログラミング技術情報 今回は「[迷信] コンストラクタから例外を送出してはならない」の続編ともいうべき内容です。コンストラクタで失敗した場合の通知方法には例外を用いるのが最良ですが、いろいろなケースを考えると不安になる方も多いようです。今回取 […] 続きを読む
[迷信] コンストラクタから例外を送出してはならない 更新日:2021年6月30日 公開日:2021年6月15日 C/C++迷信集プログラミング技術情報 昔、比較的有名な某所で「コンストラクタからの例外送出」が「禁じ手」として紹介されていることもあり、コンストラクタから例外を送出すべきではないと考える人はいまだに少なくないようです。 その根拠となっているのは、コンストラク […] 続きを読む
[迷信] アルゴリズム関数内で関数オブジェクトはコピーされない 公開日:2021年6月14日 C/C++迷信集プログラミング技術情報 まずは次のコードをご覧ください。 [crayon-67408ae0e152b632401056/] 簡単に上のコードの説明をします。countupクラスは、コンストラクタで与えられた値を初期値として、関数呼出し演算子を用 […] 続きを読む
[迷信] とりあえずmemsetで初期化 公開日:2021年6月13日 C/C++迷信集プログラミング技術情報 局所変数、特に集成体を宣言した後、実際に必要かどうかに関わらず、必ずmemset関数でゼロクリアする人は大勢います。しかし、そんなコードを見かけたら、それを書いた人のコードはすべて疑ってかかった方がよいかもしれません。 […] 続きを読む
[迷信] sizeofは定数式 公開日:2021年6月13日 C/C++迷信集プログラミング技術情報 C言語やC++のsizeof式は、オペランドの型情報を元にオペランドの評価結果のサイズをバイト数で返します。評価結果の値がどうなるかは関係ありません。C++の型には静的な型と動的な型(ポインタまたは参照が実際に指している […] 続きを読む
[迷信] scanfでキーボードから入力 公開日:2021年6月13日 C/C++迷信集プログラミング技術情報 これは迷信というより、本来は入門向けに難しい話をカットして説明するときの方便のようなものだったはずです。しかし、入門レベルのときはそれでよくても、入門者から次の段階に進む頃までその状況を引きずるべきではありません。また、 […] 続きを読む
[迷信] getsは単純にfgetsに置き換えられる 公開日:2021年6月13日 C/C++迷信集プログラミング技術情報 何かと悪名高いgets関数ですが、確かにバッファオーバーランを防げないなど、安全性に欠けるところがあります。そこで、これを何とかするために、gets関数を記述していた箇所を単純にfgets関数に置き換えればそれで問題が解 […] 続きを読む
n日後の日付 公開日:2021年6月12日 C++サンプル集プログラミング技術情報 例えば、本日から1000日後の日付を求めたいことはよくあると思います。そんなとき、つい、月ごとの日数のテーブルを作って、閏年の判定を行って、といった処理を組み合わせて計算してしまいがちです。しかし、実際にはそんな面倒なこ […] 続きを読む
[迷信] 文字列から整数への変換にはatoi 公開日:2021年6月12日 C/C++迷信集プログラミング技術情報 ごく普通のナル終端文字列”123″を整数値の123に変換するとき、あなたはどんな方法を用いるでしょうか? 学校の課題でもないかぎり、1文字ずつ取り出して数字かどうかを判別し、数字なら取り出した文字 […] 続きを読む
[迷信] 入力データ格納用配列のサイズはBUFSIZ 公開日:2021年6月11日 C/C++迷信集プログラミング技術情報 fgets関数などで一行分の文字列を読み込む場合など、サイズが分からないデータを格納するための配列の要素数はどのようにしているでしょうか? 実際に入力されるデータの長さは分からないまでも、プログラムが必要としている長さの […] 続きを読む