2013-04-19 4 views
1

У меня есть пример следующим образом:Получение размера массива в 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.

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

+0

http://www.c-faq.com/, раздел 6. –

+0

Сколько раз вы собираетесь спросить это опять и опять? – 2013-04-19 05:50:04

ответ

3

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

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

+0

Да, массив отличается от указателя – kaitian521

0

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

+0

ОК, спасибо. Я использовал функцию для вычисления размера массива, который был предоставлен. Спасибо за ответы! – spikestar

+0

@spikestar: добро пожаловать .. :) –

Смежные вопросы