malloc 动态分配内存

2017-05-04 20:38

很久没有学习C了,复习下,有时候觉的C特别优美,学习算法和数据结构最佳选择。

#include "stdafx.h"
#include<stdlib.h>

int main()
{
	
	int arr[5] = { 1,2,3,4,5 };
	int len;
	printf("请输入数组长度 len=");
	scanf_s("%d",&len);

	int *pArr = (int *)malloc(sizeof(int)*len);
	//1.申请20个字节的内存,供我读写。
	//2.malloc 函数只返回第一个字节地址,所有需要强制转换成 int *
	//*pArr = 4;//类似 arr[0]=4;
	//pArr[1] = 3;//类似arr[1]=3;
	printf("分别请输入%d个数字\r\n", len);

	for (int i = 0; i < len;i++) {
		scanf_s("%d", &pArr[i]);
	}

	printf("你输入的5个数字是\r\n");
	for (int j = 0; j < len; j++)
	{
	       printf("%d\r\n",*(pArr+j));
	}
	free(pArr);//释放申请的内存

    return 0;
}