指向結構體的指標和指向結構體指標的指標

2021-10-09 03:39:02 字數 1446 閱讀 3924

例如,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...