質問: 以下のQiitaのサイトを参考にPythonからC言語の関数を呼び出す処理を書いているのですが、多次元配列を受け取る際に要素数が呼び出すC言語側の関数の実行結果に依存するので、事前に知ることができません(参考サイトでは引数に要素数のパラメータが指定されています)。 充分大きな配列を作っておく(のちに加工)か、関数を二回実行するくらいしか思いつきません。 なにか良い方法はありませんでしょうか? Qiita: PythonからC言語の関数を呼び出して多次元配列をやり取りする
回答: C側でmallocして、配列と要素数の参照を返した後、pythonで読み取ってpythonオブジェクトに変換してからfreeとか。実装は楽ですが、少し無駄があります。 Cのコードでnumpy配列を組み立てて直接返すこともその気になればできたと思いましたが、手間なのでcythonを使ったほうが恐らく楽でしょう。