几个简单的分配内存

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来释放;

原文地址:https://www.cnblogs.com/defen/p/5189553.html