Требуется освобождение string.c_str ()?

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

33
задан Sam 12 August 2014 в 13:07
поделиться