(C语言)为什么要动态分配

来源:百度知道 编辑:UC知道 时间:2024/07/08 07:58:49
动态和非动态分配有什么区别吗?
那比如
struct stu
{
...;
struct stu *next;
};
//struct stu *p;
为啥要
p=(struct stu *)malloc(sizeof(struct stu));
p不申请动态空间,不是也能用吗?

由于C语言中的数组一但定义,其大小就不能再在程序运行过程中改变,为了能够在程序运行的过程中根据需要定义所需要大小的数组,就要使用动态分配。动态分配的数组在运行的过程还可以改变其大小。

动态分配根据需要分配空间.
非动态分配是预先分配一个定量大小的空间.

譬如我想创建一个n个元素的数组,但是这个需要用户来输入,我们就可以这样定义:
int *i, n;
scanf("%d", &n);
i = new int[n];
这是动态分配

非动态分配则是:
int i[100];

能用?
除非你用的编译器高级到全自动!

可怜的孩子啊,没有申请空间,你用什么来装东西呢。