int
*a;
int N;
scanf("%d", &N);
a = (int *)
malloc(N * sizeof(int));
....
free(a);
这样就动态分配了数组a[N]。数组的长度N可输入确定,也可用程序中的变量确定。但要注意程序结束后要用free()将其释放,否则内存会泄漏。
int *a;
int N;
printf("Input array length: ");
scanf("%d", &N);
printf("\n");
a = (int *) malloc(N * sizeof(int));
for(i = 0; i < N; i++)
{
a = i + 1;
printf("%-5d", a);
if ((i + 1) % 10 == 0)
printf("\n");
}
free(a);
printf("\n");
return 0;
}
运行结果(VC):
=========================================================
Input
array length: 100↙
1 2 3 4 5 6 7 8 9 10
11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
31 32 33 34 35 36 37 38 39 40
41
42 43 44 45 46 47 48 49 50
51 52 53 54 55
56 57 58 59 60
61 62 63 64 65 66 67 68 69
70
71 72 73 74 75 76 77 78 79 80
81 82 83
84 85 86 87 88 89 90
91 92 93 94 95 96 97
98 99 100
=========================================================
文章评论(0条评论)
登录后参与讨论