[迷信] getsは単純にfgetsに置き換えられる 公開日:2021年6月13日 C/C++迷信集プログラミング技術情報 何かと悪名高いgets関数ですが、確かにバッファオーバーランを防げないなど、安全性に欠けるところがあります。そこで、これを何とかするために、gets関数を記述していた箇所を単純にfgets関数に置き換えればそれで問題が解 […] 続きを読む
[迷信] 文字列から整数への変換にはatoi 公開日:2021年6月12日 C/C++迷信集プログラミング技術情報 ごく普通のナル終端文字列”123″を整数値の123に変換するとき、あなたはどんな方法を用いるでしょうか? 学校の課題でもないかぎり、1文字ずつ取り出して数字かどうかを判別し、数字なら取り出した文字 […] 続きを読む
[迷信] 入力データ格納用配列のサイズはBUFSIZ 公開日:2021年6月11日 C/C++迷信集プログラミング技術情報 fgets関数などで一行分の文字列を読み込む場合など、サイズが分からないデータを格納するための配列の要素数はどのようにしているでしょうか? 実際に入力されるデータの長さは分からないまでも、プログラムが必要としている長さの […] 続きを読む
[迷信] コンストラクタで自身をゼロクリア 公開日:2021年6月10日 C/C++迷信集プログラミング技術情報 世の中には怖いもの知らずというか、とんでもないコードを書く人たちがいます。例えば、 [crayon-674f3690dd62c805879142/] のようなコードです。さすがにこれはクラッシュする可能性が高いので、実行 […] 続きを読む
[迷信] 一重引用符の中には一文字しか書けない 公開日:2021年6月9日 C/C++迷信集プログラミング技術情報 一重引用符 ‘ で囲まれた文字定数または文字リテラルには、一文字しか書けないと考えている方が少なくないようです。例えば、’abc’のような書き方をすると、コンパイルエラーになるか未定義 […] 続きを読む
[迷信] コンパイルエラーが出るのでアクセス指定子を修正 公開日:2021年6月9日 C/C++迷信集プログラミング技術情報 C++を使ってチームで開発していると、一度ぐらいは必ず遭遇したことがある恐怖の間違いがあります。それが、コンパイルエラーを取り除くためにアクセス指定子を修正すればよいという考え方です。具体的にどういうことか見ていきましょ […] 続きを読む
[迷信] データ列のソートにはqsort関数を使うべし 公開日:2021年6月9日 C/C++迷信集プログラミング技術情報 ソートのアルゴリズムにはいろいろありますが、中でもクイックソートは比較的高速なアルゴリズムです。その名前からも分かるように、qsort関数はクイックソートの実装であることを示唆しています。実際には、規格上はqsort関数 […] 続きを読む
[迷信] ソースファイルの末尾に} 公開日:2021年6月8日 C/C++迷信集プログラミング技術情報 これは迷信ではなく、よくある間違いです。この間違いの最悪なところは、書いた本人も、自分がどう書いたのかをほとんど自覚していないところにあります。実際、「ソースファイルの末尾に}」と指摘しただけでは、具体的にどういう状況な […] 続きを読む
[迷信] ソースコード中の即値を全廃せよ 公開日:2021年6月7日 C/C++迷信集プログラミング技術情報 言語を問わず、プログラミングではマジックナンバーが嫌われる傾向にあります。しかし、マジックナンバーについて誤解しているケースも少なからず見受けられます。典型的なのは、即値=マジックナンバーという誤解です。即値とマジックナ […] 続きを読む
[迷信] プログラムは必ずmainから始まる 公開日:2021年6月7日 C/C++迷信集プログラミング技術情報 C言語やC++の入門書を読めば、プログラムはmain関数から始まると書かれています。そのこと自体は間違っていませんが、「必ず」そうかというと3つの意味で正しくありません。ひとつはスタートアップの存在であり、ひとつはフリー […] 続きを読む