placement new 真危险

#include <iostream>
#include <string>
#include <stdlib.h>

using std::string;

int main(int argc,char* argv[]){
    setlocale(LC_ALL,"");
    char* buf=(char*)malloc(sizeof(std::string)*2);
    std::string* s=new (buf) std::string();
    s->append("hello");
    s->~string();
    //delete s;
    free(buf);
    return 0;
}

如果去掉using std::string,上面的代码该怎么写?

此博客中的热门博文

少写代码,多读别人写的代码

在windows下使用llvm+clang

tensorflow distributed runtime初窥