1. 程式人生 > >一維動態陣列的實現(c語言)

一維動態陣列的實現(c語言)

程式設計輸入一個班的某課程的學生成績,計算其平均分,然後輸出。班級人數由鍵盤輸入。

#include <stdio.h>
#include <stdlib.h>


main()
{

    int *p = NULL,i,n,sum;
    printf("Please enter array numbers: ");
    scanf("%d",&n);

    p = (int*)malloc(sizeof(int)*n);

    if(p==NULL)
    {

        printf("No enough memory !\n"
); exit(0); } printf("Please input %d scores:",n); for (i=0;i<n;i++) { scanf("%d",p+i); } sum = 0; for (i =0;i<n;i++) { sum = sum + *(p+i); } printf("aver = %d\n",sum/n); free(p); }

注意的是最後有個記憶體釋放。還有就是因為堆空間是有限的,所以動態分配記憶體後,必須檢查函式malloc()的返回值,確保使用前不是NULL,即非空指標,任何空指標均意味著它不指向任何物件,不應該使用它。如果使用空指標則可能會導致程式癱瘓。