string n = NULL;
cout << "blah: " << n << " foo!" << endl; // never printed
cout << "BLAH" << endl; // never printed
cerr << "FOO" << endl; // never printed
Я понимаю, что присвоение или добавление чего-то к NULL неверно. Но тихо умирать тоже нехорошо. Как я должен обрабатывать/отлаживать эти ситуации? И почему программа умирает?Почему моя программа на C++ отключается при использовании объекта NULL?
Как вы можете увидеть [здесь] (http://www.cplusplus.com/reference/string/string/string/), инициализация строки с нулевым ptr приводит к _undefined behaviour_ – norisknofun
Объект 'std :: string', когда построенный по умолчанию (как в' std :: string n; ') пуст. Если вам нужна пустая строка, все, что вам нужно сделать, это создать объект, никакой специальной или явной инициализации не потребуется. –
@NathanOliver Проблема не в том, что NULL является указателем. Это то, что это нулевой указатель. – juanchopanza