数组的最大大小(堆和栈)

1   自己定义的数组最大不能超过2M(因为栈的大小为2M)如果非要定义很大的数组   则要分配在堆上 采用malloc函数


2  三个内存分配函数

 vmalloc  kmalloc  malloc

vmalloc  分配较大的内存 虚拟地址连续 物理无连续

kmalloc   分配较小的内存 虚拟地址连续 物理连续

malloc   分配的内存在堆上   物理不一定连续  虚拟地址连续  


3  进程创建

fork ()    vfork()      clone()

vfork():保证子进程先运行  等子进程调用exec  exit后  父进程才调用

clone()  有选择性的继承父进程的资源   不止是父子关系  还可以是兄弟关系


4  堆栈溢出的原因

一种是:定义的局部数组太大   第二种是  递归深度太深

回答: 数据结构中的与操作系统中的有一些区别。在数据结构中,是两种不同的数据结构。是一种线性结构,可以使用数组或链表实现,其中元素的地址连续。而是一种树形结构,是一种特殊的完全二叉树,其中根节点是最大(或最小)节点。的存储一般使用数组来实现。\[1\]\[2\] 而在操作系统中,是用来管理内存的两个重要概念。是一种后进先出(LIFO)的数据结构,用于存储函数调用的局部变量、函数参数和返回地址等信息。大小是固定的,由操作系统在程序运行时分配和管理。而是用于动态分配内存的一块区域,用于存储程序运行时动态创建的对象和数据。大小可以根据需要进行动态调整,但需要手动管理内存的分配和释放。\[3\] 因此,数据结构中的主要是用于存储和操作数据的数据结构,而操作系统中的是用于管理内存的概念。它们的实现和用途有所不同。 #### 引用[.reference_title] - *1* *2* [的区别(数据结构角度)](https://blog.csdn.net/aabbccas/article/details/127739109)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [的概念和区别](https://blog.csdn.net/pt666/article/details/70876410)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值