C 访问内存
访问动态内存
动态内存的行为类似于数组,其数据类型由指针的类型指定。
与数组一样,要访问动态内存中的元素,请引用其索引号:
ptr[0] = 12;
您还可以解引用指针来访问第一个元素:
*ptr = 12;
示例
从动态内存读取数据和写入数据:
// 分配内存
int *ptr;
ptr = calloc(4, sizeof(*ptr));
//
Write to the memory
*ptr = 2;
ptr[1] = 4;
ptr[2] = 6;
// Read
from the memory
printf("%d", *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]);
亲自试一试 »

