1. malloc()函数
1.1 malloc的全称是memory allocation,中文叫动态内存分配。
原型:extern void *malloc(unsigned int num_bytes);
说明:分配长度为num_bytes字节的内存块。如果分配成功则返回指向被分配内存的指针,分配失败返回空指针NULL。当内存不再使用时,应使用free()函数将内存块释放。
1....
分类:
其他好文 时间:
2015-04-17 18:24:20
阅读次数:
190
1.void GetMemory(char *p)
{
p = (char *)malloc(100);
}
void Test(void)
{
char *str=NULL;
GetMemory(str);
strcpy(str,"Hello World");
printf(str);
}请问运行Test函数会有什么样的结果?
程序编译可以通过,...
分类:
编程语言 时间:
2015-04-17 15:41:38
阅读次数:
181
1.局部变量通常在它所在的语句块结束的时候被释放。如果你不想释放某个局部变量,可以在局部变量上加上static进行声明2.C中有三种内存领域的寿命。q静态变量的寿命从程序运行时开始,到程序关闭时结束。q自动变量的寿命到声明该变量的语句块执行结束为止。q通过malloc()分配的领域的寿命到调用fre...
分类:
其他好文 时间:
2015-04-16 23:42:34
阅读次数:
189
输入函数scanf_s() 比如:char d[20];写成scanf_s("%s",d,20);输出函数printf() 比如:printf("hello word\n",);输入输出格式: d=整型 f=浮点型 c=字符型 s=字符串 p=指针地址动态内存分配函数malloc() 比如:ch.....
分类:
其他好文 时间:
2015-04-16 19:10:29
阅读次数:
109
在C里,内存管理是通过专门的函数来实现。另外,为了兼容各种编程语言,操作系统提供的接口通常是C语言写成的函数声明(Windows本身也由C和汇编语言写成)。1分配内存malloc函数需要包含头文件: and 函数声明(函数原型)void *malloc(int size);说明:malloc向系.....
分类:
编程语言 时间:
2015-04-16 11:54:25
阅读次数:
199
Ptr=NULL; //NULL在文件stdio.h中定义过。 Ptr=(unsigned int *)malloc(N*sizeof(int)); //注意一定是要开辟N个int型的字节长度,不然编译会出错。 //printf("%ld\n",Ptr); for(i=0;i { *(Pt...
分类:
其他好文 时间:
2015-04-16 01:30:25
阅读次数:
262
最近在进行监控平台的设计,之前一直觉得C/C++中最棘手的部分是内存的管理上,远不止new/delete、malloc/free这么简单。随着代码量的递增,程序结构复杂度的提高。各种内存方面的问题悄然滋生。而且作为平台,后期的插件扩展在所难免。长时间运行的采集平台的特性更是提出了对稳定性的高要求。不...
分类:
其他好文 时间:
2015-04-15 18:31:16
阅读次数:
151
项目中用到的fcntl.hfcntl : file control : 文件控制errno.h : 提供了一种错误报告机制malloc.h : 动态分配内存sys/mman.h : 内存管理声明linux/videodev2.h : 视频驱动头文件linnux/fb.h :frame buffer ...
分类:
系统相关 时间:
2015-04-14 14:35:52
阅读次数:
199
堆内存释放,是从堆顶开始。那么如果堆中间的一块区域,大部分内存都释放了,堆顶还有一些会怎么样呢?
我们来看个例子:
#include
#include
#include
#include
int main()
{
char *p[11];
int i;
for(i=0;i
{
p[i]=(char *)malloc(1024*2);
strcpy(p[i],"12...
分类:
其他好文 时间:
2015-04-13 16:40:36
阅读次数:
624
在主调用函数中分配内存:1 char **myarray = (char **)malloc(10*sizeof(char *));2 if (myarray == NULL)3 {4 return -1;5 }6 for (i=0; i<10...
分类:
其他好文 时间:
2015-04-11 22:34:18
阅读次数:
115