手册
目录
动态内存的行为类似于数组,其数据类型由指针的类型决定。
与数组类似,要访问动态内存中的元素,需引用其索引号:
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 个字节)或四个 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]);
运行实例 »点击 "运行实例" 按钮查看在线实例
相关
视频
RELATED VIDEOS
科技资讯
1
2
3
4
5
6
7
8
9
精选课程
共5课时
17.2万人学习
共49课时
77.2万人学习
共29课时
61.9万人学习
共25课时
39.4万人学习
共43课时
71.1万人学习
共25课时
61.8万人学习
共22课时
23万人学习
共28课时
34万人学习
共89课时
125.5万人学习