Я сомневаюсь в базовом использовании C ++. Приведенный ниже код, скомпилированный с помощью gcc / LInux, распечатывается правильно.
Строка test
выходит за пределы области видимости, поэтому ее значение c_str ()
должно быть недопустимым, не так ли? Я ошибаюсь или неправильно понял значение const char *
?
#include <iostream>
int main(){
const char* a = "aaaa";
std::cout << a;
{ std::string test("bbbb");a=test.c_str();}
std::cout << a;
a = "cccc";
std::cout << a;
}
aaaabbbbcccc
// print out without any problem