C_and_CPP 板


LINE

※ 引述《fantasymew (小孙)》之铭言: : 在看 Linux kernel 的资料结构时 : 常常看到会有这种宣告方式 : 例如 char entries[0] 这样的宣告方法 : 看起来可能像 label: 这样的作用 : 因为取 sizeof 它并不占空间 : 可以请问前辈们 : 它算是一个定位作用吗?(位移、偏移量) : 如果是 : 那该怎麽使用呢? : 谢谢解答 通常这代表这个结构後面会接一个不定长度的东西 在结构中应该会有一个栏位指明这东西有多长 然後实际在配置空间时就会 ptr = malloc(sizeof(TheStructure)+AdditionalBytes); 这样那个宣告为 [0] 的那个阵列就会正好放在多配置出来的这块地方 -- 'Oh, Harry, dont't you see?' Hermione breathed. 'If she could have done one thing to make absolutely sure that every single person in this school will read your interview, it was banning it!' ---'Harry Potter and the order of the phoenix', P513 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.30.84
1F:推 hilorrk:但是已宣告的array不能用动态配置吧? 08/19 20:57
2F:→ james732:这种用法在C++似乎行不通了? 08/19 21:01
3F:推 VictorTom:它不是针对array[0]重新做动态配置, 而是那个array[0]的 08/19 21:15
4F:→ VictorTom:宣告会放struct head的最後, 直接相当於衔接struct data 08/19 21:15
5F:→ VictorTom:的头; 不另外用void*或char*的好处事它不用占用空间:) 08/19 21:16
6F:→ james732:咦 所以char*会占一个指标的空间 但是char[0]不会? 08/19 21:16
7F:推 VictorTom:是的:) 小弟随手用DevC++测, 应该C++还是可以用的喔.... 08/19 21:19
8F:→ VictorTom:那个array[0]认知上要当作它是定位/位移用的也OK吧我想. 08/19 21:19
9F:推 VictorTom:印象中常用的地方像网路封包, 用法就像回文的L大写的那 08/19 21:22
10F:→ VictorTom:样, 在AdditionalBytes的范围内, 可以直接用array[N] :) 08/19 21:22
11F:推 littleshan:C++ 标准规定阵列大小必须大於零 08/20 02:03
12F:→ littleshan:g++ 加上 -pedantic 参数後就会报错了 08/20 02:05
13F:推 VictorTom:原来如此, 谢谢l大:) 08/20 02:41
14F:推 ledia:其实也有一些是放 char[1] 的 08/20 14:00
15F:推 su31o4gj83:不太懂为什麽会需要用到这种技巧 @@ 08/20 14:07
16F:→ VictorTom:方便吧, 而且挂pointer的话还得分两次malloc空间XD 08/20 14:10
17F:推 ledia:避免 shallow copy 的问题 ? i guess 08/20 14:10
18F:推 VictorTom:一直都不知道shallow/deep copy这组术语....Orz 08/20 14:13
19F:→ tinlans:C99 新的写法已经可以直接留空了,写 [] 表示它是弹性阵列 08/20 14:56
20F:→ tinlans:,但限制就是它必须是最後一个 data member。 08/20 14:57
21F:→ Favonia:#1E1snMFF 07/23 19:51







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP