#include<stdio.h>
#include<stdlib.h>
char*substr(constchar*s,intn1,intn2)
{
char*p=(char*)malloc(n2-n1+2);
inti,j=0;
for(i=n1;i<=n2;i++,j++)
p[j]=s[i];
p[j]=‘\0‘;
returnp;
}
voidmain(void)
{
chars[80],*sub;
intn1,n2;
printf("请输入..
分类:
其他好文 时间:
2015-04-26 01:47:06
阅读次数:
146
内存池简单说,是为了减少频繁使用 malloc/free new/delete 等系统调用而造成的性能损耗而设计的。当我们的程序需要频繁地申请和释放内存时,频繁地使用内存管理的系统调用可能会造成性能的瓶颈,嗯,是可能,毕竟操作系统的设计也不是盖的。内存池的思想是申请较大的一块内存(不够时继续申请),之后把内存管理放在应用层执行,减少系统调用的开销。...
分类:
其他好文 时间:
2015-04-24 19:15:37
阅读次数:
341
(1)C语言跟内存分配方式从静态存储区域分配. 内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在.例如全局变量、static变量.在栈上创建 在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放.栈内存分配运算内置于处理器的指令集中,效率很...
分类:
编程语言 时间:
2015-04-24 16:16:38
阅读次数:
122
本文来至http://www.cnblogs.com/jyaray/archive/2010/06/04/1751775.html内存区域可以分为栈、堆、静态存储区和常量存储区,局部变量,函数形参,临时变量都是在栈上获得内存的,它们获取的方式都是由编译器自动执行的。利用指针,我们可以像汇编语言一样处...
分类:
其他好文 时间:
2015-04-24 13:50:50
阅读次数:
160
1 内存五大区 栈 堆 静态区 常量区 代码区2 int result = 0; //calloc和malloc功能一样,都是在堆区开辟一块新的空间,唯一不同的是,calloc还把空间重启了一下 //第一个参数是分配多少个房间 //第二个参数是每个房间多少字节 //realloc ...
分类:
其他好文 时间:
2015-04-23 23:09:31
阅读次数:
204
在不知道需要占用内存空间大小时,需要在堆栈上动态开辟内存空间,空间使用结束后需要程序员自己释放。#include
#include
void main()
{
int n,*p,i,j,m,temp;
printf("本程序可对任意个整数排序;\n");
printf("请输入整数的总个数: ");
scanf("%d",&n);
p=(int *)calloc(n,sizeof...
分类:
其他好文 时间:
2015-04-22 18:18:17
阅读次数:
158
IOS经常会混合使用C代码,而在C中,对内存的读写是很频繁的操作。其中,内存越界读写 unsigned char* p =(unsigned char*)malloc(10); unsigned char c = *(p+100) ; free(p);是一种很容易犯的错误,在大部...
分类:
移动开发 时间:
2015-04-21 22:05:53
阅读次数:
265
来自: http://blog.csdn.net/on_1y/article/details/13030439 (这篇介绍的非常到位和透彻!!!)char *p="hello";char q[]="hello";char *r = (char*)malloc(sizeof(char)*6);我们知道...
分类:
编程语言 时间:
2015-04-21 17:29:22
阅读次数:
137
程序运行时需要系统分配内存,那么系统如何为程序分配内存呢?
首先,我们得清楚内存分配方式分为类:静态分配内存和动态分配内存。那么这两种又是个什么东西?好的,基于这个问题我们来看一下他们的定义:
静态分配内存:由编译器根据变量类型来确定分配给变量多少字节的内存区域。
动态分配内存:程序在运行的时候用malloc 或new 申请任意多少的内存,程序员自己负责在何时用free 或delet...
分类:
编程语言 时间:
2015-04-21 14:45:36
阅读次数:
271