Необъявленная ошибка NULL в C / C ++ и способы ее устранения
Что такое необъявленная ошибка:
Когда мы используем некоторую константу в нашей программе, они могут быть встроенными константами и могут быть созданы пользователем в соответствии с требованиями. Но когда мы используем некоторую константу, а они не являются встроенными и также не определены пользователем в этом состоянии, мы получаем необъявленную ошибку.
Ниже приведен код, показывающий пример необъявленной ошибки NULL:
using namespace std; // Driver Code int main() { // NULL declared int * num = NULL; return 0; } |
Приведенный выше код покажет ошибку как «необъявленная ошибка NULL» . Причина необъявленной ошибки NULL в том, что «NULL» не является встроенной константой.
Зачем нам NULL?
Когда мы создаем какой-либо указатель в нашей программе, они используются для хранения адресов. Но неинициализированные переменные-указатели очень опасны, так что мы можем присвоить им NULL, что означает, что они не указывают ни на какую ячейку памяти, поэтому наша программа работает плавно и безопасно.
Теперь, если NULL не является встроенной константой, как мы можем преодолеть необъявленную ошибку NULL.
Ниже приведен код, который используется для удаления необъявленной ошибки NULL:
- Присвоить 0: вместо присвоения NULL для num мы можем просто присвоить 0, что означает, что он не указывает какой-либо адрес, поэтому простейшим решением является просто присвоение 0.
Код ниже показывает его реализацию:using
namespace
std;
// Driver Code
int
main()
{
int
* num = 0;
return
0;
}
- Включите файл заголовка «stddef.h»: в файле заголовка stddef.h уже определен NULL , поэтому мы можем включить этот файл заголовка в нашу программу, и наша программа будет компилироваться и выполняться без каких-либо ошибок.
Код ниже показывает его реализацию:#include <stddef.h>
// Driver Code
int
main()
{
int
* num = NULL;
return
0;
}
- Включите файл заголовка iostream: в C ++, если мы хотим выполнить нашу программу без необнаруженной ошибки NULL, мы можем просто включить iostream в нашу программу и сделать это без ошибок.
Код ниже показывает его реализацию:#include <iostream>
using
namespace
std;
// Driver Code
int
main()
{
int
* num = NULL;
return
0;
}
- #define NULL 0: Используя строку #define NULL 0 в нашей программе, мы можем решить необъявленную ошибку NULL.
Код ниже показывает его реализацию:#define NULL 0
using
namespace
std;
// Driver Code
int
main()
{
int
* num = NULL;
return
0;
}
- В новом C ++ (C ++ 11 и выше):: nullptr - это встроенная константа, поэтому мы можем использовать ее вместо NULL.
#include <iostream>
using
namespace
std;
// Driver Code
int
main()
{
int
* num = nullptr;
return
0;
}
Хотите учиться на лучших видео и практических задачах, ознакомьтесь с базовым курсом C ++ для базового и продвинутого уровня C ++ и курсом C ++ STL для языка и STL. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .