码迷,mamicode.com
首页 >  
搜索关键字:calloc malloc c语言    ( 2525个结果
mallo函数
malloc的全称是memory allocation,中文叫动态内存分配,当无法知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态的分配内存。原型为extern void *malloc(unsigned int num_bytes)。1函数简介原型extern void *mallo...
分类:其他好文   时间:2014-08-29 17:36:58    阅读次数:354
C语言内存申请与使用
1. 使用malloc申请一块空间,模拟KV存储的一个节点存储数据信息。#include#include #include #include #include typedef struct v_block *p_block;struct v_block{ p_block next; ...
分类:编程语言   时间:2014-08-29 12:49:27    阅读次数:209
C语言:一个涉及指针函数返回值与printf乱码、内存堆栈的经典案例
一个奇怪的C语言问题,涉及到指针、数组、堆栈、以及printf。下面实现: 整数向字符串的转换,返回字符串指针,并在main函数中调用printf显示。 #include#include#includechar* swich(int n){ char A[20],B[20]; char*p;//=(char*)malloc(4*sizeof(char)); int...
分类:编程语言   时间:2014-08-28 00:54:48    阅读次数:225
#include_next <filename.h>
意思就是include下一个(除本文件)文件名为 filename.h 的头文件作用是这样的,就是你想用自己的函数代替其他库函数,但是1.不想修改源代码,2.不能修改原来的头文件这是就可以用#include_next了。下面的例子用在不改变源代码和头文件的情况下,实现了记录malloc函数调用情况。...
分类:其他好文   时间:2014-08-27 18:17:28    阅读次数:227
STL源码分析--第二级空间配置器
本文讲解SGI STL空间配置器的第二级配置器。 相比第一级配置器,第二级配置器多了一些机制,避免小额区块造成内存的碎片。不仅仅是碎片的问题,配置时的额外负担也是一个大问题。因为区块越小,额外负担所占的比例就越大。 额外负担是指动态分配内存块的时候,位于其头部的额外信息,包括记录内存块大小的信息以及内存保护区(判断是否越界)。要想了解详细信息,请参考MSVC或者其他malloc实现。...
分类:其他好文   时间:2014-08-26 11:49:16    阅读次数:201
APUE学习笔记——5.4缓冲Buffering
缓冲的几个基本概念     缓冲的作用:减少系统read和write的次数。 全缓冲         系统标准I/O缓冲区被写满时才进行真正的I/O操作。         磁盘文件一般使用全缓冲         全缓冲使用malloc来分配缓冲区 行缓冲         系统遇到换行符时进行真正的I/O操作。         Te...
分类:其他好文   时间:2014-08-25 11:57:14    阅读次数:214
跳舞链解数独 静态数组优化
前几天有人问我之前写的那个跳舞链解数独的程序的内存泄漏问题如何解决,因此回顾了一下我的那个程序。现在看来那个程序简直不忍直视,于是大刀阔斧的改了。主要是把动态内存分配都改为了静态预分配,这样就可以避免频繁的调用malloc和free。同时静态分配的好处就是内存访问局部性比较好,cache不容易mis...
分类:其他好文   时间:2014-08-24 14:05:12    阅读次数:300
[转] malloc基本实现
任何一个用过或学过C的人对malloc都不会陌生。大家都知道malloc可以分配一段连续的内存空间,并且在不再使用时可以通过free释放掉。但是,许多程序员对malloc背后的事情并不熟悉,许多人甚至把malloc当做操作系统所提供的系统调用或C的关键字。实际上,malloc只是C的标准库中提供的一...
分类:其他好文   时间:2014-08-24 11:31:22    阅读次数:260
这样的类型转换,你用过吗
最近在做64位代码移植,代码中到处充斥着类型转换,到处报编译警告和错误,比如以下使用: unsigned int ret=0,*p=NULL; p = (unsigned int *)malloc(sizeof(4)); ret = (unsigned int )p; 以上这段代码,在32位编译系统中没问题,但是在64位编译系统中就会报错,说是类型转换size不一样,因为在64位,所有指针...
分类:其他好文   时间:2014-08-23 23:01:01    阅读次数:264
无锁内存缓冲池
/* 无锁内存缓冲池 其特点如下: 池内存的申请和释放不会使用锁,只会用到微耗的interlockedincrement和interlockeddecrement函数 池内存总大小和池内内存块的大小是固定长度的,通过构造函数的参数指定; 分配出来的池内存是经过memset确认的物理内存; 池大小是固定的,若池中空闲内存不足以提供所需,则池内存分配函数利用malloc...
分类:其他好文   时间:2014-08-23 16:52:03    阅读次数:344
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!