私は構造を持っています
typedef struct foo {
int lengthOfArray1;
int lengthOfArray2;
int* array1;
int* array2;
} foo;
構造全体とその配列の内容に十分なメモリを割り当てる必要があります。したがって、各配列の長さが5であると仮定します。
foo* bar = (foo*)malloc(sizeof(foo) + (sizeof(int) * 5) + (sizeof(int) * 5));
ここで、array1とarray2を、割り当てられたバッファー内の正しい場所にポイントする必要があります。
bar->array1 = (int*)(&bar->lengthOfArray2 + sizeof(int));
bar->array2 = (int*)(bar->array1 + lengthOfArray2);
これは正しいです?
編集#1
混乱を解消するために、メモリを3つではなく、1つのブロックに保持しようとしています。
編集#2
MSVC 2010コンパイラがC99をサポートしていないため、C99を使用できません(http://stackoverflow.com/questions/6688895/does-microsoft-visual-studio-2010-supports-c99)。