Tengo algunas lagunas en la comprensión del método string::assign
. Considere el siguiente código:¿std :: string :: assign toma "propiedad" de la cadena?
char* c = new char[38];
strcpy(c, "All your base are belong to us!");
std::string s;
s.assign(c, 38);
¿Se s.assign
asignar un nuevo buffer y copiar la cadena en él o ella asume la propiedad del puntero; es decir, no asigna nueva memoria y usa directamente mi dirección. Si se copia, ¿cuál es la diferencia entre assign
y operator=
? Si no se copia, ¿libera la memoria o es mi responsabilidad?
Gracias.
No hay forma de que un 'std :: string' se apropie de un puntero que tenga, period :( –