学数据结构一开始就会遇到这样的语句
int *a = (int*)malloc(n*sizeof(int));
但仅仅知道而不理解是不可行的,还要明白动态分配用法。
适用情况:
- 数组的长度必须事先指定,而且只能是常量,不能是变量。
- 比如像下面这么写就是对的:
int a[5];
- 而像下面这么写就是错的:
int length = 5;
int a[length]; //错误
- 因为数组长度只能是常量,所以它的长度不能在函数运行的过程当中动态地扩充和缩小。
一,malloc函数的使用
方式一:
int *p = (int *)malloc(8);
方式二:(推荐用这种方式,可移植性高)
int *p = ma