補充 給二級指標分配空間

2021-08-30 06:00:08 字數 1081 閱讀 7095

前面有生篇文章「給二級指標分配空間」,分配的空間有點問題,不連續,正確的分配方法如下面的例子。以下例子實現的功能是:把檔案當中的每一行讀到乙個陣列中的乙個char*裡面。

#include 

#include

#include

#ifndef _wordslen_

#define wordslen 32

#endif

#define printerr(errmsg) printf("error:%s",errmsg)

#define freeif(ptr)

#define closeif(fptr)

int load2var(char *filename, char arr[wordslen])

fseek (fin,0l,seek_end);

textlen = ftell (fin);

fseek (fin,0l,seek_set);

dofread(text,textlen,1,fin);

ptr = (char *)strtok(text,delim);

while (ptr)

}while(0);

freeif(text);

closeif(fin);

return i;

}int main(int argc, char **argv)

*myarr = (char *)malloc(sizeof(char) * wordslen * wordslen);

if (myarr[0] == null)

for (i = 0; i < wordslen; i++)

memset(myarr[0],0,wordslen*wordslen);

len = load2var("input.txt", *myarr);

printf("len=%d\n",len);

for (i = 0; i < wordslen; i++)

freeif(*myarr);

freeif(myarr);

return 0;

}

二級指標動態記憶體分配

指標是可變陣列的首位址,正因為是可變陣列,所以一般使用指標都是採用動態記憶體分配和釋放的方式。一尾指標形式簡單,容易理解,平時應用較多 二維陣列和二維指標比較複雜,並且在動態記憶體分配與釋放方面比較複雜難以理解,但是二維陣列和二維指標是非常有用的 void func1 int p1,int p2 t...

指標與二級指標

int num 10 int p1 int p2 p1 指標的指向結構如下圖所示 0x4000 0x3000 p2 0x2000 p1 num p2 表示的是儲存p2指標的位址 p2 表示的是p2指向的位址,即指標p1存放的位址 p2 表示指標p2指向位址中所存的值,即指標p1指向的位址,即變數nu...

一級指標二級指標

例如 int p null int代表指標p指向的資料型別是int型,代表這是乙個指標變數,1 指標變數儲存的內容是指向的變數的位址 2 在使用sizeof判斷指標的位元組數時,在32位機器上為4個位元組,在64位機器上為了相容,仍然是四個位元組大小 3 小知識點,不同型別的指標除了指向的變數資料型...