ARRAY_LENGHT 5;
int* array = (int*)malloc(sizeof(int) * ARRAY_LENGHT);
Допустим отдаю функции, которая его инициализирует, как мне теперь проверить, что элементы массива не NULL ?
for(int index = 0; index < ARRAY_LENGHT; index++) {
assert(array[index] != NULL)
}
GССx64, linux компилятор ругается на:
comparison between pointer and integer
Как мне исправить ? Спасибо!
int не бывает нулл
Бессмысленный assert, прочитай сам, что ты проверяешь
наверное в этой версии компилятора ваш NULL == nullptr Зачем вообще их сравнивать, в массиве ведь целочисленные значения
Динамический массив делается так: std::vector<int> array(size);
по-моему, такая проверка просто не имеет смысла, т.к. не ясно, что вы проверяете
Когда int вдруг начал хранить NULL?
чтобы проверить, что malloc был выполнен, необходимо проверить, что array != NULL, после этого у вас есть массив с любым мусором, в том числе таким, который может соответствовать вашему критерию "инициализирован" и "не инициализирован".
Обсуждают сегодня