Мой код несколько раз преобразует строки С++ в CStrings, и мне интересно, будет ли исходная строка выделена в стеке, будет ли CString также выделена в стеке? Например:
string s = "Hello world";
char* s2 = s.c_str();
Будет ли выделяться s2
в стеке или в куче? Другими словами, мне нужно удалить s2
?
И наоборот, если у меня есть этот код:
string s = new string("Hello, mr. heap...");
char* s2 = s.c_str();
Будет ли теперь s2
находиться в куче, поскольку его начало было в куче?
Чтобы уточнить, когда я спрашиваю, есть ли s2
в куче, я знаю, что указатель находится в стеке. Я спрашиваю, будет ли то, что он указывает, на кучу или стек.