struct mydata
;
在結構中,data是乙個陣列名;但該陣列沒有元素;該陣列的真實位址緊隨結構體mydata之後,而這個位址就是結構體後面資料的位址(如果給這個結構體分配的內容大於這個結構體實際大小,後面多餘的部分就是這個data的內容);這種宣告方法可以巧妙的實現c語言裡的陣列擴充套件。
實際用時採取這樣:
struct mydata *p = (struct mydata *)malloc(sizeof(struct mydata )+strlen(str))
這樣就可以通過p->data 來操作這個str。
示例:
#include using namespace std;
struct mydata
;int main()
輸出:
size of mydata: 4
mydata's data is: 123456789
由於陣列沒有元素,該陣列在該結構體中分配占用空間,所以sizeof(struct mydata) = 4。
malloc申請的是14個位元組的連續空間,它返回乙個指標指向這14個位元組,強制轉換成struct info的時候,前面4個位元組被認為是mydata結構,後面的部分拷貝了「123456789」的內容
資料結構存在的意義
在我們現實生活中,我們處理一件事情的時候,往往不只是處理單單的乙個資料,也就是說你處理的是乙個資料的集合體。我們設想這些資料是有一定的關係的。比如說,用到資料a 接下來就會用到資料 b 可以看出a與b資料存在著某種密切的關係。下面分成兩個場景來思考這個問題 a b之間的關係並沒有進行顯式的儲存 我們...
資料結構 前言(0)
為什麼學習資料結構?資料結構作為構建高效演算法的必要基礎,在電腦科學領域中,起到了技術體系的基石的作用。而其中涉及的知識,在相關專業的課程系統中也始終處於核心位置。以acm ieee computing curricula 計算機教學大綱 2005年版為例,其中對於幾個相關專業 電腦科學,計算機工程...
資料結構 ElemType T 代表的意義
1 前言 普通變數的引用 elemtype表示抽象資料型別,假設為int型。首先看個改變變數值的例子 函式1 void add int x 函式2 void add int x int main 很明顯只有函式2才會改變x變數的值。2 t 的含義 指標的引用 如果要改變指標型變數,則需要寫成如下形式...