calloc函数的使用和对内存free的认识
#include<stdlib.h>
void *calloc(size_t n, size_t size);
free();
目前的理解: n是多少个这样的size,这样的使用类似有fread,fwrite. 这个函数把内存里面的数据清空了, free确实把本来的buf清空了,buf之后的数据是随机数据,有个问题就是free之后指针没有设置为NULL
#include <stdio.h>
#include <stdlib.h> int main(void)
{
// calloc 1920
char* buf = (char*)calloc(1920,sizeof(char));
if (buf == NULL)
{
printf("calloc 分配内存失败\n");
return -1;
}
printf("buf is %d\n", buf[0]);
printf("buf is %p\n", buf);
buf[0] = 1;
printf("buf is %d\n", buf[0]);
free(buf);
printf("buf is %p\n",buf);
printf("buf is %d\n",buf[0]);
buf = NULL;
printf("buf is %p\n",buf);
while (1)
{
//printf("buf is %p\n", buf);
}
return 0;
}
  
calloc函数的使用和对内存free的认识的更多相关文章
- C语言calloc()函数:分配内存空间并初始化——stm32中的应用
		
经常在代码中看到使用malloc来分配,然后memset清零,其实calloc更加方便,一句顶两句~ 头文件:#include <stdlib.h> calloc() 函数用来动态地分配内 ...
 - realloc,malloc,calloc函数的区别
		
from:http://www.cnblogs.com/BlueTzar/articles/1136549.html realloc,malloc,calloc的区别 三个函数的申明分别是: void ...
 - malloc()函数,calloc()函数,realloc()函数,free()函数
		
malloc()函数 头文件:#include <stdlib.h> malloc() 函数用来动态地分配内存空间,其原型为:void* malloc (size_t size); [参数 ...
 - malloc函数、calloc函数和free函数
		
malloc函数和free函数 malloc函数原型:void *malloc(long NumBytes) malloc原型说明:mallco函数在堆分配了NumBytes个字节的内存空间,用来存放 ...
 - 不能返回函数内部new分配的内存的引用
		
以前在开发电子秤接口动态库时,曾尝试在用于获取重量的函数外面定义一个字符串指针,然后作为参数传入函数内部,然后在函数内部new,用来输出函数执行过程中发生的错误.但是总是出错,没有找到原因,后来无意中 ...
 - 【漏洞分析】两个例子-数组溢出修改返回函数与strcpy覆盖周边内存地址
		
修改返回函数 return 0 下面的程序的运行流程为main()函数调用了Magic()函数,通常执行完Magic()函数后会调用return 0 的地址, 但是在执行Magic()函数中时,数组下 ...
 - 关于 calloc 函数使用 与fun 函数
		
s=(float *) calloc (1,sizeof(float)); #include "stdio.h"#include "stdlib.h"void ...
 - C++类成员函数与成员变量的内存布局
		
一.成员函数 成员函数可以被看作是类作用域的全局函数,不在对象分配的空间里,只有虚函数才会在类对象里有一个指针,存放虚函数的地址等相关信息.
 - c语言基础学习08_内存管理
		
=============================================================================涉及到的知识点有:一.内存管理.作用域.自动变 ...
 
随机推荐
- 1级搭建类107-Oracle 18c 单实例 FS(华为云)公开
			
项目文档引子系列是根据项目原型,制作的测试实验文档,目的是为了提升项目过程中的实际动手能力,打造精品文档AskScuti. 项目文档引子系列除特定项目目前不对外发布,仅作为博客记录,其他公开.如学员在 ...
 - git配置多仓库
			
git配置多仓库 github , gitee , coding , gitlab , gitlab.company ..... 真TM多 . 真TM多 . 真TM多 . 生成ssh 生成ssh 密钥 ...
 - cookie、session和application
			
https://cloud.tencent.com/developer/article/1493869 前言: 一直想写一篇关于cookie和session的博客,由于种种原因,一直没有整理,这不,今 ...
 - day03_2spring3
			
SSH整合(续) 一.spring整合hibernate:有hibernate.cfg.xml 前提:导入jar包,在前面已经介绍了jar包的整合,我们只需要将整合的所有jar包导进去即可. 1.创建 ...
 - ubuntu set up 2 - 双系统时间问题
			
http://ubuntuhandbook.org/index.php/2016/05/time-differences-ubuntu-1604-windows-10/ For users who d ...
 - ZOJ1310-Robot (BFS)
			
The Robot Moving Institute is using a robot in their local store to transport different items. Of co ...
 - Java期末考试冲刺总结
			
经过长达将近三个小时的冲刺,我感觉身心俱疲,但它无法掩盖我敲代码的欲望! 三个小时我只实现了公文流转系统的的部分功能. 我深刻的意识到建民老师说的这套关系之复杂,它真的是太复杂了!!!没有系统的梳理, ...
 - pdo一次插入多条数据的2种实现方式
			
pdo一次插入多条数据的2种实现方式: **** 1.一个sql插入多个值,防注入处理放在获取到值的时候使用htmlspecialchars(addslashes($params )); try{ f ...
 - 解决lucene更新删除无效的问题
			
个人博客 地址:http://www.wenhaofan.com/article/20180921233809 问题描述 在使用deleteDocuments,updateDocument方法根据id ...
 - Python Turtle模块的简单应用
			
时钟 import turtle as t import datetime as dt #画出背景 game = t.Screen() game.bgcolor("white") ...