私はPythonに統合するC関数を作成しています。これは、基本的にcharの2次元配列を作成し(各行は一定の既知の長さです)、データを読み取り、そこからnumpy配列を作成し、呼び出し元の関数に返します。 Pythonで。私はCの専門家ではありませんが、配列が作成された関数を終了した後、配列をメモリに保持するには、mallocを使用して配列をヒープに割り当てる必要があると思います。だから私はこの行を試しています:
//rowSize and interleaved are both integers; bytesPerTable is equal to rowSize * interleaved
char arrs[interleaved][rowSize] = (char **)malloc(bytesPerTable * sizeof(char));
コンパイラエラーが発生します
error: variable-sized object may not be initialized
これを機能させる方法がわかりません。必要なサイズ(bytesPerTable)のメモリブロックを割り当てて、それを必要な2次元配列に編成したいと思います。単に宣言すれば
char arrs[interleaved][rowSize];
その後は機能しますが、ヒープではなくスタック上にあります。誰か助けてもらえますか?