我对string::assign方法的理解存在一些差距.请考虑以下代码:
char* c = new char[38];
strcpy(c, "All your base are belong to us!");
std::string s;
s.assign(c, 38);
是否s.assign分配新缓冲区并将字符串复制到其中,或者它是否拥有指针的所有权; 即不分配新内存并直接使用我的地址.如果它复制,那么assign和之间的区别是operator=什么?如果它没有复制,那么它是否释放内存或者我的责任?
谢谢.