初学动态内存分配
1 /*
2 动态内存分配
3 传统数组的缺点:
4 1,数组长度必须事先制定,且只能是常整数,不能是变量。
5 例子:
6
7 int a[5]//ok
8 int len = 5; int a[len]//error
9
10 2,传统形式定义的数组,该数组的内存程序员无法手动释放。
11 知道函数运行结束时,数组的空间才会被系统释放。
12
13
14 3,数组的长度不能在函数运行过程中动态地扩充货缩小
15
16
17 4,A函数定义的数在A函数运行期间可以被其他函数调用,
18
19 为什么需要动态分配内存
20 动态数组很好得解决了传统数组的缺陷
21 传统数组也叫静态数组
22
23 */
24 # include <stdio.h>
25 # include <malloc.h>
26
27 int main(void)
28 {
29 int len;
30 int * pArr;
31 int i;
32
33 printf("输入数组长度\n");
34 scanf("%d",&len);
35 pArr = (int *)malloc(4 * len);
36 printf("输入各个元素的值\n");
37 for(i=0; i<len; i++)
38 scanf("%d",&pArr[i]);
39
40 printf("您刚才输入的值为:\n");
41 for(i=0; i<len; i++)
42 printf("%d\n",pArr[i]);
43 return 0;
44 }
2 动态内存分配
3 传统数组的缺点:
4 1,数组长度必须事先制定,且只能是常整数,不能是变量。
5 例子:
6
7 int a[5]//ok
8 int len = 5; int a[len]//error
9
10 2,传统形式定义的数组,该数组的内存程序员无法手动释放。
11 知道函数运行结束时,数组的空间才会被系统释放。
12
13
14 3,数组的长度不能在函数运行过程中动态地扩充货缩小
15
16
17 4,A函数定义的数在A函数运行期间可以被其他函数调用,
18
19 为什么需要动态分配内存
20 动态数组很好得解决了传统数组的缺陷
21 传统数组也叫静态数组
22
23 */
24 # include <stdio.h>
25 # include <malloc.h>
26
27 int main(void)
28 {
29 int len;
30 int * pArr;
31 int i;
32
33 printf("输入数组长度\n");
34 scanf("%d",&len);
35 pArr = (int *)malloc(4 * len);
36 printf("输入各个元素的值\n");
37 for(i=0; i<len; i++)
38 scanf("%d",&pArr[i]);
39
40 printf("您刚才输入的值为:\n");
41 for(i=0; i<len; i++)
42 printf("%d\n",pArr[i]);
43 return 0;
44 }