1 Dynamic Array Allocation
1.使用malloc
申请int
长度空间,使用指针变量p
接收
2.指针变量p
保存在stack,它指向heap的一个指定的内存空间
3.可以为数组申请空间
1.1 Array allocation with calloc()
1.malloc
通用的申请内存空间,可以为所有类型(普通类型,数组,结构体)
2.问题1:给数组申请内存时未初始化
3.问题2:20 * sizeof(int)
不便于阅读
//allocate a 20 byte array
int * a = (int *) malloc(20 * sizeof(int));
int i;
for(i = 0; i < 20; i++){
printf("%d\n",i);
}
1.calloc将数组都初始化0
2.参数是两位,便于阅读
//allocate a 20 byte array
int * a = (int *) calloc(20, sizeof(int));
int i;
for(i = 0; i < 20; i++){
printf("%d\n",i); // 0 b/c calloc zeros out allocated memory
}
2 Data Representations
2.1 Pointers and Arrays are still the same!
1.数组直接,int *p = a;
而普通变量则需要int *p = &a
2.指针值+1,是加了该指针类型的字节长度