Мой код довольно часто преобразует строки C ++ в 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
в куче, я знаю, что указатель находится в стеке. Я спрашиваю, будет ли то, что он указывает на , в куче или стеке.