麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

[轉]C語言變長數組 struct中char data[0]的用法

2019-11-10 19:09:22
字體:
來源:轉載
供稿:網友

原文:http://www.xuebuyuan.com/1731866.html

摘要:在實際的編程中,我們經常需要使用變長數組,但是C語言并不支持變長的數組。此時,我們可以使用結構體的方法實現C語言變長數組。

struct MyData {  int nLen;  char data[0];}; PS:必須將指針定義在struct的末尾,指針的類型也可以不為char。在結構中,data是一個數組名;但該數組沒有元素;該數組的真實地址緊隨結構體MyData之后,而這個地址就是結構體后面數據的地址(如果給這個結構體分配的內容大于這個結構體實際大小,后面多余的部分就是這個data的內容);這種聲明方法可以巧妙的實現C語言里的數組擴展。實際用時采取這樣:struct MyData *p = (struct MyData *)malloc(sizeof(struct MyData )+strlen(str))這樣就可以通過p->data 來操作這個str。

程序實例:

struct MyData { int nLen; char data[0];};
int main(){   int nLen = 10;   char str[10] = "123456789";   cout << "Size of MyData: " <<sizeof(MyData) << endl;   MyData *myData = (MyData*)malloc(sizeof(MyData) +10);   memcpy(myData->data, str, 10);   cout << "myData's Data is: " << myData->data << endl;   free(myData);   return 0;}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 中文字幕在线免费看 | 欧美精品一区自拍a毛片在线视频 | 日韩中文字幕一区二区三区 | 精品一区二区三区日本 | 国产精品免费观在线 | 91综合在线观看 | 三人弄娇妻高潮3p视频 | 成人午夜一区二区 | 免费观看视频在线 | 澳门一级淫片免费视频 | 国产成人强伦免费视频网站 | 日韩av在线网址 | 曰批全过程120分钟免费69 | 护士hd欧美free性xxxx | 鲁人人人鲁人人鲁精品 | 亚洲小视频在线播放 | 毛片网站视频 | 欧美乱论| 欧美18一19sex性护士农村 | 国产精品高潮视频 | 久草在线新时代视觉 | 最新在线黄色网址 | 国产亚洲精品久久久久久久久久 | 91精品一区二区综合在线 | 精品久久久久久 | 成年性羞羞视频免费观看无限 | 性欧美大战久久久久久久免费观看 | 黄色网址免费在线 | 99在线啪| 在线视频 日韩 | 久久99精品久久久久久秒播放器 | 国产午夜精品一区二区三区在线观看 | 国产1区在线观看 | 天天色图片| 中文成人在线 | 久久久久久久九九九九 | 韩国19禁在线 | 色吧久久 | 精品亚洲福利一区二区 | 日韩黄色免费在线观看 | 毛片免费网 |