今日の雑記

生きることでいっぱいいっぱい

続・めもりかくほ

shinh さんに補足されると色々なところから言及される罠。
憂鬱な午後のひととき http://homepage1.nifty.com/herumi/diary/0808.html#12

C onlyでわりと規模の大きいときは呼び出し元で確保するとして, 最初にポインタをNULLにして渡すと必要なサイズだけが返ってきて改めてそのサイズを確保して呼び出すというのが一番安全かな.

なんだったっけ?標準ではない sprintf でそういう仕様のものがあって「あーこれべんりだなー」とか思ったことがありました。確かにこの手法はいいですね。というか個人的には好みです。<個人的な話ですか

でもその手順を毎回書くのは面倒だから呼び出し先で確保してほしい, しかしライブラリがWindowsのDLLにもなりえるというところまで考えるなら, メモリ確保関数を一緒に渡してそれで確保してもらうというのに(昔は)落ち着いた. 今ならDLLにせずhppで値返ししてまう.

今仕事でやってる、とあるプラットフォームのライブラリがまさにこの「アロケータを渡す」仕組みになってて、使ってる側にすれば「これはこれでどーなのかなあ?」とか思わないでもないんですが。