国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

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

[轉]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;}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 杭锦后旗| 辽阳县| 锡林郭勒盟| 南召县| 新宁县| 浏阳市| 临高县| 尉犁县| 盘山县| 磴口县| 临海市| 金华市| 绥滨县| 四平市| 库伦旗| 买车| 保康县| 珠海市| 揭东县| 静海县| 田东县| 根河市| 昔阳县| 西峡县| 什邡市| 桂阳县| 曲周县| 时尚| 申扎县| 油尖旺区| 将乐县| 偏关县| 牟定县| 荔浦县| 图们市| 上蔡县| 阿克| 安义县| 通化县| 吉林省| 吉林省|