所以给出:输出的char *到的std :: string C++
struct MemoryStruct {
char *memory;
size_t size;
};
char* memory
持有卷曲的回报,XML文档。
我做:
if(chunk.memory) {
std::cout << "char size is " << sizeof(chunk.memory) << std::endl;
std::string s = "";
for (int c = 0; c<sizeof(chunk.memory); c++) {
s.push_back(chunk.memory[c]);
}
std::cout << "s: " << s.c_str() << std::endl;
}
我只取回<?xm
所以sizeof()
,我认为是在炭返回的总字节数*
我如何得到什么实际的价值是char*
。所以基本上整个卷曲都会返回。哪5行是XML?
'sizeof'在'字符*'将返回指针的大小,该字符串中的字符数量不限。使用'strlen(chunk.memory)'获取字符串长度(假设它以null结尾)。并且不需要单独push_back每个字符,'std :: string'有一个构造函数,它接受'char const *'到一个以空字符结尾的字符串。 'std :: string s(chunk.memory);'就足够了。如果不是空终止,请使用's(chunk.memory,str_length);' – Praetorian 2013-03-04 18:18:14