C 記憶體訪問
訪問動態記憶體
動態記憶體的使用方式類似於陣列,其資料型別由指標的型別決定。
與陣列一樣,要訪問動態記憶體中的元素,請引用其索引號。
ptr[0] = 12;
您也可以透過解引用指標來訪問第一個元素。
*ptr = 12;
示例
讀寫動態記憶體
// 分配記憶體
int *ptr;
ptr = calloc(4, sizeof(*ptr));
// 寫入記憶體
*ptr = 2;
ptr[1] = 4;
ptr[2] = 6;
// 從記憶體讀取
printf("%d\n", *ptr);
printf("%d %d %d", ptr[1], ptr[2], ptr[3]);
自己動手試一試 »
關於資料型別的說明
動態記憶體沒有自己的資料型別,它只是一系列位元組。記憶體中的資料可以根據指標的資料型別被解釋為相應的型別。
在此示例中,一個指向四個位元組的指標可以被解釋為一個 int
值(4 位元組),或者解釋為 4 個 char
值(每個 1 位元組)的陣列。
示例
int *ptr1 = malloc(4);
char *ptr2 = (char*) ptr1;
ptr1[0] = 1684234849;
printf("%d is %c %c %c %c", *ptr1, ptr2[0], ptr2[1], ptr2[2], ptr2[3]);
自己動手試一試 »