内存:1:堆存储区 ==> 存储手动分配的内存:malloc free 2:栈存储区 ==> 系统为临时变量分配内存的区域 3:静态变量存储区 ==> 用来存储静态变量内存 当程序启动时,先为所有的静态变量分配内存 在程序执行中,static静态变量的内存一直保留 当程...
分类:
其他好文 时间:
2015-08-05 12:44:50
阅读次数:
114
计数排序是稳定排序,而且是线性时间内的排序算法,时间复杂度是O(n + k)其中k是待排序数组的范围。计数排序不是原址排序,空间复杂度是O(n + k)
//k是指A中的数组范围是0~k 包括0和k
void count_sort(int A[], int B[], int n, int k)
{
int *C = (int *)malloc(sizeof(int) * ...
分类:
编程语言 时间:
2015-08-04 00:39:31
阅读次数:
131
两个函数:malloc和free
需要头文件:stdlib.h
void *malloc(size_t size);
void free(void *ptr);
需要说明的是:
申请:
1)。参数是申请内存的字节数。
2)。申请的是一块连续的内存。
3)。返回值是void *类型,因此,要将他的返回值付给一个指针的时候,一定要类型转换。
释放:
1)。参数是...
分类:
其他好文 时间:
2015-08-03 19:14:11
阅读次数:
98
先看一下,什么叫做内存的碎片化:1 如果用c语言直接 malloc,free 来向操作系统申请和释放内存时,2 在不断的申请和释放过程中,形成了一些很小的内存片断,无法再利用.3 这种空闲,但无法利用内存的现象,---称为内存的碎片化.因此,为了解决这个内存碎片化带来的浪费,那MC采用的是slab ...
分类:
其他好文 时间:
2015-08-02 19:46:56
阅读次数:
204
#include#include#includetypedef struct _stack{ int* arr; int top, size;}stack;stack createStack(int size){ stack st; st.arr = (int*)malloc(size*sizeof...
分类:
其他好文 时间:
2015-08-02 19:45:41
阅读次数:
108
*/输入10个学生5门课的成绩,分别用函数实现下列功能:
1>计算每个学生的平均分。
2>计算每门课的平均分。
3>找出所有50个分数中最高的分数所对应的学生和课程。/*
#include<stdio.h>
#include<malloc.h>
#include<string.h>
#include<stdl..
分类:
编程语言 时间:
2015-08-02 18:28:06
阅读次数:
171
对象内存模型一. 栈(Stack) VS. 堆(heap)栈由系统自动管理,以执行函数为单位空间大小编译时确定(参数+局部变量)函数执行时,系统自动分配一个stack函数执行结束时,系统立即自动回收stack堆在c++中由程序员手动控制手动分配new和malloc手动释放delete和free具有全...
分类:
编程语言 时间:
2015-08-02 13:12:56
阅读次数:
262
> 解决办法: >> 在调用malloc或calloc, 至少多分出一个字节, 不要用这个字节
分类:
系统相关 时间:
2015-08-02 11:28:17
阅读次数:
822
在以前从事C/C++开发的时候,内存的管理一直是需要被谨慎考虑的内容。在C语言中,我们使用库函数malloc()和free()两个库函数来实现从堆中分配内存与释放,而C++则使用操作符new和delete来实现内存的管理,对于这两个方式,后者是操作符而前者是库函数,后者能够被编译器处理而前者着重于对内部数据实现构造,在面向对象设计中,后者能更好的结合构造函数对自定义对象实现内存分配。但是,在接触了...
分类:
编程语言 时间:
2015-07-31 21:56:16
阅读次数:
179
malloc函数
原型
extern void *malloc(unsigned int num_bytes);
头文件
#include
功能
分配长度为num_bytes字节的内存块
返回值
如果分配成功则返回指向被分配内存的指针(此存储区中的初始值不确定),否则返回空指针NULL。当内存不再使用时,应使用free()函数将内存块释放。函数...
分类:
编程语言 时间:
2015-07-31 16:20:21
阅读次数:
124