アカウント名:
パスワード:
malloc したら free しなきゃいけないのが C 言語最大(!?)の欠点だ!という評論が載りそうな気がします。
#バッファーオーバーフローが気になるなら gets じゃなくて fgets を使えばいいような?
なら標準ライブラリにgetsが存在したりif (n = 1) {}がコンパイルできたりしてしまうこと自体が欠点。回避策があればそれだけでいいってもんじゃないだろ。
getsはともかく、代入が式なのは決して悪くない。assert(a = malloc(...)); みたいな使い方はそこそこ便利だ。
一応、そこでミスらない方法として if(1 == n) と書く習慣をつければ間違って if(1 = n) と書いたときコンパイラがエラー出してくれるってのがあるらしいが、どうせ if(n == m) では使えないテクなのでおすすめしない。
> assert(a = malloc(...)); みたいな使い方はそこそこ便利だ。
assertの用途を考えると不適切に思えるのだが、私がおかしいのか?
NDEBUGでなくなっちゃうよね。
こいつのためだけにVCでVERIFYってのが開発されたんだろ。VERIFYを使っても何をしたいかはわからないが。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
目玉の数さえ十分あれば、どんなバグも深刻ではない -- Eric Raymond
次はメモリ管理へ (スコア:3, すばらしい洞察)
malloc したら free しなきゃいけないのが C 言語最大(!?)の欠点だ!
という評論が載りそうな気がします。
#バッファーオーバーフローが気になるなら gets じゃなくて fgets を使えばいいような?
Re: (スコア:0)
なら標準ライブラリにgetsが存在したりif (n = 1) {}がコンパイルできたりしてしまうこと自体が欠点。
回避策があればそれだけでいいってもんじゃないだろ。
Re:次はメモリ管理へ (スコア:1)
getsはともかく、代入が式なのは決して悪くない。
assert(a = malloc(...)); みたいな使い方はそこそこ便利だ。
一応、そこでミスらない方法として if(1 == n) と書く習慣をつければ間違って if(1 = n) と書いたときコンパイラがエラー出してくれるってのがあるらしいが、どうせ if(n == m) では使えないテクなのでおすすめしない。
1を聞いて0を知れ!
Re:次はメモリ管理へ (スコア:3, すばらしい洞察)
> assert(a = malloc(...)); みたいな使い方はそこそこ便利だ。
assertの用途を考えると不適切に思えるのだが、
私がおかしいのか?
Re: (スコア:0)
NDEBUGでなくなっちゃうよね。
Re: (スコア:0)
こいつのためだけにVCでVERIFYってのが開発されたんだろ。
VERIFYを使っても何をしたいかはわからないが。
Re: (スコア:0)