教學內容: 內存的使用 動態內存分配malloc函數 分配內存時使用sizeof運算符 用指針訪問內存 以數組的形式訪問內存 一、內存的使用 堆(heap) 在程序執行期間分配內存時,內存區域中的這個空間稱為堆(heap)。,malloc,calloc 棧(stack) 一般是函數分配給本地的參數和本地變量(局部變量)。 二、動態內存分配malloc函數 在C語言中最簡單的內存分配函數是malloc函數,原型如下: void *malloc( size_t size ); // 字節(BYTE) char 成功將返回分配內存空間的地址值,失敗將返回NULL也就是0; 例: int *pNum=(int*) malloc(100); //分配100字節,也就是25個int類型的空間 三、分配內存時使用sizeof運算符 例: int *pNum=(int*) malloc(25*sizeof(int)); //分配字節,也就是個int類型的空間 double *pfNum=(double *) malloc(25*sizeof(double )); 四、用指針訪問內存 int *pNum=(int*) malloc(25*sizeof(int)); int i,*p; p=pNum; for (i=0;i<25;i++) { *pNum++=i; } pNum=p; for (i=0;i<25;i++) { printf("%d,", *pNum++); //pNum=pNum+25; } getchar(); 五、以數組的形式訪問內存 int *pNum=(int*) malloc(24*sizeof(int)); //3*8,4*6,6*4,2,12 int i; for (i=0;i<25;i++) { pNum[i]=i; } for (i=0;i<25;i++) { printf("%d,", pNum[i]); //pNum=pNum+25; }
