乙個結構體的示例

2021-07-03 22:17:25 字數 1493 閱讀 1278

定義乙個結構體teacher型別, 然後宣告乙個teacher陣列 ,teacher包含名字和資料. teacher陣列元素在堆空間開闢 , 然後輸入名字年齡,接下來列印輸入的內容, 再然後釋放開闢堆的記憶體

**如下:

#include"stdafx.h"

#include

#include

#include

#define _crt_secure_no_deprecate

//定義teacher型別

typedef

struct teacher teacher;

//建立teacher陣列

int createteacherarray(teacher** arr, int num)

teacher* p = null;

p = ( teacher* ) malloc(sizeof( teacher ) * num);

memset(p,0,sizeof(teacher)*num);

if (p == null)

for (int i = 0; i < num; i++)

p[i].name = pointer;

}*arr = p;

return retcode;

}//初始化teacher陣列值

int initdata(teacher* arr, int num)

for(int i=0; iprintf("請輸入第%d 個teacher的值 \n", i+1);

printf("\nplease enter name:");

scanf("%s",(*(arr+i)).name);

printf("\nplease enter age:");

scanf("%d",&((*(arr+i)).age));

}return retcode;

}//列印teacher陣列值

int printdata(teacher *arr, int num)

for(int i=0; iprintf("姓名: %s 年齡: %d\n",arr[i].name, arr[i].age);

}return retcode;

}//釋放name和teacher值

int freemem(teacher* arr, int num)

for(int i=0; ifree(arr[i].name);

free(arr+i);

}return retcode;

}int main()

printf("列印結果\n");

printdata(tarray,num);

freemem(tarray,num);

return

0;}

對於teacher陣列的記憶體示意圖

無名結構體的乙個妙用

可以定義無名結構體型別的變數。編譯器對無名結構體的處理是隨機生成乙個不重複的變數名。無名結構的定義方式就是定義無名結構體時必須定義該結構體型別的至少乙個變數。無名結構體的妙用就是可以避免相同型別的結構體的重複定義。例如實現乙個佇列,佇列元素型別未知。我們希望把佇列的對頭指標 對尾指標儲存在乙個結構體...

struct結構體的乙個題

struct st static struct st a 3 如果下述語句的顯示是2,則對p的賦值是 printf d p next n a p a 0 b p a 1 c p a 2 d p a 3 正確答案c struct st 第一句話說的是,定義一種結構體st,由整形和指向這個結構體的指標構...

結構體優化示例

摘自老師的ppt 還沒細看,先放著 定義並初始化指標陣列 filldeck deck,face,suit 初始化一副牌 shuffle deck 洗牌 deal deck 發牌 return0 void filldeck card wdeck,char wface,char wsuit void f...