パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

文字列操作は「C言語最大の欠点」か?」記事へのコメント

  • 次はメモリ管理へ (スコア:3, すばらしい洞察)

    malloc したら free しなきゃいけないのが C 言語最大(!?)の欠点だ!
    という評論が載りそうな気がします。

    #バッファーオーバーフローが気になるなら gets じゃなくて fgets を使えばいいような?

    • by Anonymous Coward

      なら標準ライブラリにgetsが存在したりif (n = 1) {}がコンパイルできたりしてしまうこと自体が欠点。
      回避策があればそれだけでいいってもんじゃないだろ。

      • getsはともかく、代入が式なのは決して悪くない。
        assert(a = malloc(...)); みたいな使い方はそこそこ便利だ。

        一応、そこでミスらない方法として if(1 == n) と書く習慣をつければ間違って if(1 = n) と書いたときコンパイラがエラー出してくれるってのがあるらしいが、どうせ if(n == m) では使えないテクなのでおすすめしない。

        --
        1を聞いて0を知れ!
        • Re: (スコア:3, すばらしい洞察)

          > assert(a = malloc(...)); みたいな使い方はそこそこ便利だ。

          assertの用途を考えると不適切に思えるのだが、
          私がおかしいのか?

私はプログラマです。1040 formに私の職業としてそう書いています -- Ken Thompson

処理中...