例如,struct t *ptr;是指向乙個結構體的指標,也可以當做乙個結構體陣列來用。 可以把結構體當做 int 來看,int* 型別即可以指向乙個整數,也可以指向陣列。
struct t ** ptr, 說白了 就是乙個結構體指標的陣列,陣列內都是指標,還要分配記憶體。
1,結構體指標用法一:
strusysinfo *sysinfo;
sysinfo = (strusysinfo*)malloc(sizeof(strusysinfo));
sysinfo->version = (char *)malloc(sizeof(char)*10);//version 是結構體中的乙個char指標
2,結構體指標用法二:
struparammodel *pparammodel;
paramodelnum = 20;
pparammodel = (struparammodel*)malloc(sizeof(struparammodel)*paramodelnum);
for(i = 0;i < paramodelnum;i++)
pparammodel[i].version = (char *)malloc(sizeof(char)*10);//version 是結構體中的乙個char指標
3,指向結構體指標的指標用法一:
blockcfg **pblockcfg;
wblocknum = 100;
devp->pblockcfg = (blockcfg**)malloc(sizeof(blockcfg*)*wblocknum);
for(b = 0;b < wblocknum ; b++)
devp->pblockcfg[b] = (blockcfg*)malloc(sizeof(blockcfg));
memset(devp->pblockcfg[j]->blocktype, '\0', 32);//blocktype是結構體中的乙個佔32位元組空間的char型陣列
4,指向結構體指標的指標用法二:
frozentpyes **pfrozetypes;//一維對應di2pos,二維對應di0pos
wdi2max = 20;
devp->pfrozetypes = (frozentpyes**)malloc(sizeof(frozentpyes*)*wdi2max);
for(a = 0;a < wdi2max;a++)
wfrozetimes[a] = a+10;
devp->pfrozetypes[a] = (frozentpyes*)malloc(sizeof(frozentpyes)*wfrozetimes[a]);
for(b = 0; b < wfrozetimes[a];b++)//次數
memset(devp->pfrozetypes[a][b].chfroztime,0,12);//chfroztime為結構體中佔12位元組空間的char型陣列
指向結構體的指標和指向結構體指標的指標
剛才用結構體的指標,操作記憶體出錯了,記錄一下。struct t ptr 是指向乙個結構體的指標,也可以當做乙個結構體陣列來用。可以把結構體當做 int 來看,int 型別即可以指向乙個整數,也可以指向陣列。struct t ptr,說白了 就是乙個結構體指標的陣列,陣列內都是指標,還要分配記憶體。...
指向結構體的指標
建立結構體指標是極常見的。下面是乙個例子 typedef struct rec typedef rec recpointer recpointer r r recpointer malloc sizeof rec 指向結構體的指標示意圖 r是乙個指向結構體的指標。請注意,因為r是乙個指標,所以像其他...
指向結構體的指標
方式與定義指向其他型別變數的指標相似 struct books struct pointer struct pointer book1 struct pointer title 舉例1 include include using namespace std struct studentstu,stu...