私は構造体を持っています:
struct Thing {
int id;
}
Thing
次に、 s の配列を作成します。
struct Thing *a;
a = (struct Thing *) malloc(sizeof(struct Thing));
a->id = 1;
struct Thing *b;
b = (struct Thing *) malloc(sizeof(struct Thing));
b->id = 2;
struct Thing *array[] = {a,b};
配列のサイズを確認すると、2 です。次の方法で配列のサイズを確認します。
printf("%d",sizeof(array)/sizeof(array[0]));
また、Things の配列を受け取る関数もあります。
void function(struct Thing *array[]) {
//do stuff
}
次に、関数に配列を渡します。
function(array);
関数内では、配列のサイズは 1 です。誰かがどこで間違っていたのか、関数内で配列のサイズが 1 になっている理由を教えてもらえますか?