2.4返回堆上一維空間
2.4.1一級指標作為返回值輸出
void * allocmem(int base,int count)
int main()
2.4.2二級指標作為函式引數輸出
int allocmem(void **p,int base,int n)
int main()
2.5返回堆上二維空間
二維空間,並不一定就是二維陣列,具有陣列的訪問形式。但己經遠遠不是陣列 的定義了。
2.5.1一級指標作返回值輸出
void * alloc2dmem(int base,int row,int line)
int main() }
for(int i=0; i<3; i++)
putchar(10);
} free(p);
return 0; }
2.5.2二級指標作返回值輸出
★記憶體不連續
void **calloc(int base,int row,int line)
return p; }
★記憶體連續的
void **calloc(int base,int row,int line)
return p;}
★如何釋放
通過函式引數,二級指標傳位址釋放
void freecalloc(int **p,int n)//這裡的n為行數
free(p); }
2.5.3**指標作為函式引數輸出
void allocmem(void ***p,int row,int line) }
返回二維空間總結:二級指標和二維陣列名,沒有關係。不代表二級指標,同二維空間沒有關係。
練習:1、判斷乙個機子的大小段對齊(兩種方法)
void bigorsmall()
void bigorsmall2()
; union un u;
u.a = 0x12345678;
if(u.b == 0x78)
printf("small endian\n");
else
printf("big endian\n"); }
int main(void)
注意:int a=0x12345678
小端對齊 大端對齊
12 78
34 56
56 34
78 12
高位在高位址 高位在低位址
2.檔案讀寫
char* code(char * buf,int line)
char * secret = calloc(nlen+1,1);
char *ps = secret;
char(*pa)[line] = (char(*)[line])pt;
for(int i=0; i }
*ps = '\0';
free(pt);
return secret;
} char* decode(char * buf, int line) }
*pd = '\0';
while(*--pd=='*')
*pd = '\0';
return desecret;
} int main(void)
注意:fgets會得到\0 strcpy也會同時拷貝\0,file *p p指向的是file這個結構體中的內容
3.求大小
#include
void func(int b[100])
int main(void)
陣列指標與指標陣列的理解
在進行閱讀yolo原始碼的時候,由於其都是用c寫的,在指標方面,遇到了很多問題,現在就問題,對c進行更深的理解。1.c當中的strcpy與strcat函式的區別 字串處理strcpy,strcat函式的用法 1 strcat是用來連線兩個字串的,原型是char strcat char dest,ch...
指標陣列與陣列指標的理解
指標陣列與陣列指標是十分繞口的,也不容易記憶,想要知道它是什麼?就看它後面是什麼詞!指標陣列 指標陣列後面的詞就是陣列,所以它就是陣列,而陣列裡面放的是指向這個型別的指標 陣列指標 陣列指標後面的詞是指標,則它就是個指標。在知道指標陣列和陣列指標字面的意思之後,我們就要解決遇到的表示式是指標陣列還是...
關於C語言的指標陣列與指標陣列的個人理解
一 指標陣列與指標陣列 1,指標陣列 顧名思義,即乙個元素全部是指標的陣列,其形式與普通陣列相似,形式如 a n 在理解指標陣列的使用方式前,我先來說下我個人對陣列的理解。比如一維整形陣列 形如int a 3 其實是乙個具有3個整形元素的變數 二維整形陣列 形如int a 4 3 可將其視為有a 4...