1.非指针的操作
char buff[100];
bzero(buff,100);将buff中最开始的n个字节清空;
struct stat fileinfo;
bzero(&fileinfo, sizeof(fileinfo));
-----------------
struct stat file_info;//静态分配内存,是合法的
unsigned char *jpg_buffer;
jpg_buffer = (unsigned char *)calloc(1,file_info.st_size);//为jpg_buffer分配一块file_info.st_size大小的堆内存
-----------------------------
//系统并未为p分配内存,如果直接使用p会发生段错误。
char *p;//如果被函数封装了,是一个局部变量,占四个字节,函数结束,它的生命周期结束,如果要使用需用return将p返回。
p = (char *)malloc(10);//为p分配10字节区域在堆区;动态分配
------------------------
char *p = "123456";//在常量区 ,p在栈上,合法;
----------------------------------
malloc calloc均是用free来释放;