【发布时间】:2016-11-02 17:47:16
【问题描述】:
我正在尝试将字符串转换为结构。第一个字段中的结构存储第二个字段中存在的字符数。 请让我知道我在这个程序中缺少什么。 我得到错误的输出(一些大整数值)
更新:这个程序可以更正打印 4 (nsize) 吗?
#include <iostream>
using namespace std;
struct SData
{
int nsize;
char* str;
};
void main()
{
void* buffer = "4ABCD";
SData *obj = reinterpret_cast< SData*>(buffer);
cout<<obj->nsize;
}
【问题讨论】:
-
看起来您正在尝试实现自己的字符串类。你可以看看
std::string,看看他们是如何从指向string的指针做的。 -
你希望看到什么?
-
字符
'4'与整数4不同。没有大小,也没有代表性。 -
如
4所述,字符和整数 4 的大小和值不同。此外,即使您考虑了这一点,编译器也可以填充您的结构,以便相邻数据成员之间有空间......所以没有可预测的方式来做您想做的事情。至少不是您尝试这样做的方式。 -
如何实现打印4(nsize),谁能指导一下?
标签: c++ serialization struct