【发布时间】:2012-03-27 01:49:25
【问题描述】:
我有
typedef unsigned int DWORD;
void write_str(string str, char** buf) {
DWORD len = str.size();
**buf = len;
*buf += sizeof(len);
memcpy(*buf, str.c_str(), len);
*buf += len;
}
此代码,如果我在 len 中有 7 个字节,而 **buf = len; 中只有 1 个字节被覆盖,而应该是 4 个字节,因为 sizeof(DWORD) = 4
【问题讨论】:
-
只有 1 个字节分配给
**buf,因为这就是它所能容纳的全部。 -
哦,我太瞎了:(,谢谢。把它作为答案发布,我会结束问题。