目录
温馨提示
写博客是为了记录在开发过程中所涉及到的技术以及遇到的问题的解决,如果该博客对您有所帮助,希望可以点个关注;如果您对文章中的内容有什么不同的见解,欢迎留言进行讨论。谢谢!
(二)C语言之动态内存分配
一、静态内存分配
定义是指定分配的内存长度就是静态内存分配,是在栈内存中分配
int a[1024];
二、C语言内存分配
1、栈区(stack)
- windows下,栈内存分配2M(确定的常数),超出了限制,提示 stack overflow 错误;
- 栈区中内存自动分配,自动释放
2、堆区(heap)
- 程序员手动分配内存,手动释放内存,占有操作系统80%的内存,通过malloc进行内存分配
//在堆内存分配40M内存
//malloc参数是字节
//malloc 返回值是 void * ,是任意类型的指针
int* p = malloc(1024 * 1024 * 10 * sizeof(int));
//释放分配的内存
free(p);
- calloc
- realloc 重新分配内存
- 创建一个数组,动态指定数组的大小(在程序运行过程中,可以随意的开辟