C语言如何使用malloc动态申请数组 您所在的位置:网站首页 c语言double型数组 C语言如何使用malloc动态申请数组

C语言如何使用malloc动态申请数组

2024-04-04 20:22| 来源: 网络整理| 查看: 265

前言

写这篇文章是因为在做C语言题目时,发现有时需要设立动态数组才能较好的解决问题,而我所用的vs2019却不支持直接设立,就比如

int n; int a[n];

这是不被允许的,而且也会出现许多问题,所以我百度了一下,可以通过malloc函数设立动态数组,所以写此文章分享一下学习的经历,并且给一些不是很了解如何用malloc动态申请数组的同学提供一个思路。我相信有很多人也跟我有相同的问题,希望这篇能帮助你更好的理解此类问题。

正文 1.何为malloc()函数

malloc()函数为一个分配内存的函数,其会找到合适的空闲内存块,但是不会为其赋名。它会返回动态分配内存块的首字节地址,所以我们可以把该地址赋给一个指针变量,并使用指针返回这块内存。

2.用malloc()创建数组 double * grade; grade=(double *)malloc(sizeof(double));

该例子便是定义了一个double类型的指针grade,然后一个double类型的值请求内存空间,设置grade指向该位置。 (double *)是强制转换,因为我们定义的grade为double类型,所以malloc的返回类型也要强制转换为double类型,要相匹配。 所以,使用malloc()函数可以创建动态数组,可以在程序运行时选择数组的大小和分配内存。 如:

grade=(double *)malloc(n * sizeof(double));

这样,我们就可以在前面定义n,然后输入n的值,从而构建一个一维数组为动态的。 二维便是先分配行,再分配列,类比一维。

代码

最后,便放一个当时作业的那个代码,帮助理解一下这个用法。

#include #include int main() { int number1=0,number2=0,number; float average, sum=0; float* grade=0; printf("请输入学生个数:"); scanf_s("%d", &number); grade = (float*)malloc(sizeof(float) * number); if (grade == NULL) { exit(EXIT_FAILURE); } printf("请输入每个学生的成绩:"); for (int i = 0; i


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有