菜单
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

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]);
自己动手试一试 »


×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持