У меня есть массив беззнаковых длинномерных чисел. Я инициализирую первые 12 элементов. Массив изменяет размер во время выполнения программ. Как узнать длину массива.Поиск длины динамически распределенного массива unsigned long long
Я не могу использовать sizeof (array)/sizeof (unsigned long long), так как в этом случае он не работает корректно.
Я попытался с помощью этого цикла:
count = 0;
while (array[count]) count++;
return count;
Проблема этого метода состоит в том, что она по-прежнему возвращает неправильную длину.
Это базовое изложение кода.
unsigned long long *prime = (unsigned long long *)calloc(1000, sizeof(unsigned long long);
prime[0] = 3;
prime[1] = 5;
....
prime[11] = 41;
unsigned long long *ptrEmpty = &prime[12];
int sizeComp;
//User can change change the size of the array here to create a larger list of primes.//
for(i = 43, sizeComp = 12; sizeComp < length(prime); i += 2){
// Do stuff...
}
Как найти эту длину?
Длина массива всегда определяется одним из двух способов: либо указать его в другом месте (в качестве второго параметра), либо просто передать его вместе с массивом, либо вы получите какое-то значение дозорности (традиционно NULL), которое представляет конец списка. Это ваш выбор. –
Возможный дубликат [длина массива в аргументе функции] (http://stackoverflow.com/questions/8269048/length-of-array-in-function-argument) –