1. 程式人生 > >資料結構與演算法(五)

資料結構與演算法(五)

malloc函式動態記憶體分配和釋放

#include <stdio.h>
#include <malloc.h>

int main(void)
{
	int a[5] = {1,2,3,4,5};//靜態記憶體分配
	int len;
	printf("請輸入陣列的長度:len = ");
	scanf("%d",&len);
	int * b = (int *)malloc(sizeof(int)*len);//malloc函式向作業系統請求sizeof(int)*len這麼大的記憶體空間,作業系統返回給它這塊記憶體空間的首個位元組的地址,所以需要用指標變數來接受malloc函式的返回值,int *代表這塊記憶體空間每個元素所佔位元組數。
	for (int i = 0;i<len;i++)
		//scanf("%d",(b+i));
		scanf("%d",&b[i]);
	for (i = 0;i<len;i++)
		printf("%d\n",*(b+i));
	free(b);
	return 0;
}