每天一点1.2

char t[10]="hi";    可变,内存动态存储区;数组在定义的时在动态内存声明了相应长度的区域,大小取决于数组的长度

char*p="hi";        不可变,内存的静态存储区;"hi"是字面量(常量),不能通过"hi"=en来修改,指针p指向的是一块静态内存,其中数据不能动态更改

动态内存分配

malloc

void *malloc(unsigned int size)

在内存的动态存储区(堆)中分配一个长度为size的连续空间。返回值是一个系统分配的,连续内存空间的起始地址

分配失败返回NULL(所以使用前必须判断是否返回NULL)

malloc函数仅仅对指针生效

char*a;

a=(char*)malloc(10*sizeof(char));

if(a==NULL)    {printf("fail");exit;}

free   释放内存

链表可以不预先分配内存空间,需要时动态申请内存

原文地址:https://www.cnblogs.com/zhouweibaba/p/10211091.html