Получение размера массива в C

У меня есть пример следующим образом:

У меня есть структура:

typedef struct e{

    int *(array[2]); <---in my case this array is a [2][69]

}Example;

и тогда это, если у меня есть такая функция, как:

int funct(Example *e);

Как я могу получить размер массива?

Я старался:

int size =(sizeof(e->array[0])/sizeof(int));

Но это не возвращает значение 69.

Любая помощь будет очень высоко ценится.

2 ответа

Вы не можете, потому что вы не можете передавать массивы в функции (или возвращать их в этом отношении). Когда вы передаете массив в качестве аргумента, он распадается на указатель на первый элемент. Вы должны будете также передать размер.

Думаю об этом; если бы вы могли на самом деле передать массив (не указатель! Они разные животные.), почему все эти стандартные библиотечные функции принимают указатель и размер?

Вы должны передать размер.. Вы не можете найти размер без этого..

Другие вопросы по тегам