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, после этого у вас есть массив с любым мусором, в том числе таким, который может соответствовать вашему критерию "инициализирован" и "не инициализирован".
Обсуждают сегодня