作者QQ29 (我爱阿蓉)
看板C_and_CPP
标题Re: [问题] struct的data大小是可变的...
时间Thu Feb 26 00:28:40 2009
你好
我刚刚试了一下
我太嫩了 我没有遇过这种方式
原来您
struct msg *msg_ptr = (struct msg*) malloc(长度+MSG_HEADER_SIZE);
这行加上了长度 是有用意的...
我还在想 你data[]没给长度我该怎麽assign值给他呢?
不过我不懂的是
struct msg
{
char data[];
int length; //4 bytes
};
写颠倒 他就compile说error C2229: struct 'msg' 拥有大小为零的不合法阵列
这实在不懂耶..............
还有下面说的 等号那个型态不同可以这样写吗?
我试的结果也不能过...
请指教
刚刚又想印看看 长度
cout<<sizeof(msg_ptr->data);
这也不给我过@@ 这是位什麽呢???
感谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.207.211
1F:→ james732:data[] 後面是不是少了 ; 呢? 02/26 00:30
2F:→ QQ29:喔喔抱歉 我打错 改一下 02/26 00:30
※ 编辑: QQ29 来自: 140.113.207.211 (02/26 00:30)
3F:→ QQ29:波文笔误~ 02/26 00:31
※ 编辑: QQ29 来自: 140.113.207.211 (02/26 00:33)
4F:→ realmeat:倒着写,过不了,那是一个空位址,指到结构的最尾巴的地方 02/26 00:44
5F:→ realmeat:没给大小他没法定位下一个参数位址,so 过不了 02/26 00:54
6F:→ QQ29:那位什麽不能取sizeof呢@@ 02/26 01:06
7F:推 tinlans:读一下含 C99 标准的 C 语言教科书。 02/26 13:52