一江春水向東流

          做一個有思想的人,期待與每一位熱愛思考的人交流,您的關注是對我最大的支持。

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            44 隨筆 :: 139 文章 :: 81 評論 :: 0 Trackbacks

          ?C語言中動態分配數組(一維)
          ?
          ??? 當初學Pascal的時候就想過這個問題:如何動態的定義及使用數組呢?記得一般用數組的時候都是先指定大小的。當時問老師,老師說是不可以的。后來又問了一位教C++的老師,他告訴我在C++里用new可以做到,一直不用C++,所以也不明白。今天在逛論壇時終于找到了C語言中的用法(看原貼):

          ??? int *a;
          ??? int N;
          ??? scanf("%d", &N);
          ??? a = (int *) malloc(N * sizeof(int));
          ??? ....
          ??? free(a);

          ??? 這樣就動態分配了數組a[N]。數組的長度N可輸入確定,也可用程序中的變量確定。但要注意程序結束后要用free()將其釋放,否則內存會泄漏。


          --------------------------------------------------------------------------------
          驗證一下:

          #include <stdio.h>
          #include <stdlib.h>
          int main()
          {
          ??? int i = 0;

          ??? 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] = i + 1;

          ??????? printf("%-5d", a[i]);
          ??????? 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

          =========================================================

          ?

          posted on 2007-04-13 21:36 allic 閱讀(3324) 評論(0)  編輯  收藏 所屬分類: C/C++
          主站蜘蛛池模板: 英山县| 维西| 西峡县| 泸西县| 南江县| 元谋县| 乳源| 黄龙县| 固安县| 平安县| 上栗县| 东海县| 东阳市| 疏勒县| 商洛市| 连城县| 吴桥县| 个旧市| 柘荣县| 丹巴县| 如皋市| 平果县| 长宁区| 宜宾县| 嫩江县| 西峡县| 剑阁县| 奈曼旗| 醴陵市| 三台县| 喀喇| 镶黄旗| 虹口区| 兴国县| 临邑县| 阿勒泰市| 堆龙德庆县| 准格尔旗| 于田县| 专栏| 高陵县|