質問: 可変長構造体をファイルから読み込み処理 可変長の構造体、 typedef struct 構造体(仮) { char c1,c2; float f1,f2; double d; int size;//↓strのサイズ char str[1];//文字配列 }構造体(仮); の形式で書かれたバイナリデータファイルがあります。 そのファイルを読み込んでcsv形式で出力する処理を、 ファイルからの読み込む回数を減らしてやりたいと思っています。 その方法を教えていただけませんか? よろしくおねがいします。
回答: >mallocで取れるバッファのサイズを調べる関数とかあるのでしょうか? ありません。mallocでとれるかどうかは実際にmallocしなければわかりません。 (同じos、同じ環境であっても、バックグラウンド等で動くプロセスの影響もありmallocでとれる最大サイズは常に変わります。) malloc→freeを繰り返すのではなく最初に必要な分はとっておくと良いでしょう。 十分なサイズを確保しておき、どうしても足りない場合はreallocをするというような。