【发布时间】:2013-10-20 11:23:34
【问题描述】:
我尝试了一个简单的程序来理解placement new 运算符,
#include<iostream>
#include<string.h>
using namespace std;
int main(){
char *buf = new char[sizeof(string)];
string *p = new (buf) string("hi");
string *q = new string("bye");
buf = (char*)"hello";
cout << "buf :" << &buf << endl;
cout << "p :" << p << endl;
cout << "q :" << q << endl;
cout << "buf :" << buf << endl;
cout << "p :" << *p << endl;
cout << "q :" << *q << endl;
return 0;
}
如何打印buff指向的地址? &buff 将给出指针 buff 的地址,而不是它所指向的地址。
我想检查buff和q是否指向同一个内存位置。
另外,如果我评论,buf = (char*)"hello";
buff 给出了不同的地址。请帮助理解。
【问题讨论】:
-
cout
标签: c++