一維動態陣列的實現(c語言)
阿新 • • 發佈:2019-02-14
程式設計輸入一個班的某課程的學生成績,計算其平均分,然後輸出。班級人數由鍵盤輸入。
#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,即非空指標,任何空指標均意味著它不指向任何物件,不應該使用它。如果使用空指標則可能會導致程式癱瘓。