
数据结构
文章平均质量分 78
flos chen
好好学习,天天向上~
展开
-
【操作系统/C++ malloc 1KB和1MB 有什么区别?brk | mmap】
关于 malloc 如何根据请求的内存大小选择使用 brk 还是 mmap 的机制,是 glibc(GNU C Library)中 malloc 实现的一个常见策略,尽管具体的阈值(如128KB)可能会因 glibc 的不同版本或配置而有所不同。原创 2024-07-27 10:00:00 · 1201 阅读 · 0 评论 -
【数据结构/操作系统 堆和栈】区别及应用场景、底层原理图解
堆和栈是两种不同的数据结构,它们在计算机科学中扮演着不同的角色。堆主要用于实现优先队列和其他需要快速访问最大(或最小)元素的场景,而栈则主要用于需要后进先出访问顺序的场景。管理方式:主要是和代码相关的,教你怎么在代码中涉及堆和栈;内存管理:可以结合数据结构来看,会涉及到一些工作中的问题的处理以及面试问题;空间大小:操作系统底层;碎片问题:操作系统底层,这个很复杂的,操作系统中涉及内存的所有内容都离不开碎片管理这个问题,对于碎片管理,一般都是采用的重分配机制处理,这里就不展开了;原创 2024-07-07 09:00:00 · 1239 阅读 · 0 评论 -
【数据结构 之压栈,形参和局部变量入栈之前会发生什么?】三种解释回答 包含操作系统版
在计算机程序执行中,压栈、形参和局部变量的存储过程通常发生在函数调用的时候。在函数被调用时,会发生以下步骤:参数传递:局部变量分配:函数调用帧创建:函数执行:函数返回:在C++或类似的编程语言中,压栈、形参(函数参数)和局部变量入栈之前,会发生一系列的操作和准备工作。这些步骤确保了函数调用的正确性和局部变量的安全性。以下是压栈、形参和局部变量入栈之前可能发生的主要事件:在函数调用点,会发出一个调用指令(如call指令),该指令将控制权转移到被调用函数的入口点。在调用指令执行前,当前 函数的返回地址(即函数执原创 2024-06-27 09:55:43 · 747 阅读 · 0 评论 -
【数据结构 栈溢出的原理,可能导致的行为及表现形式,避免或者解决方法】
栈溢出是缓冲区溢出中的一种。在程序执行过程中,栈(Stack)是一种后进先出(LIFO)的数据结构,用于存储局部变量、函数调用的参数、返回地址等信息。当向栈中写入的数据超过其预定的容量限制时,就会发生栈溢出。这通常是因为程序错误地修改了栈指针,或者在局部缓冲区中存储了过多的数据。原创 2024-06-30 10:00:00 · 571 阅读 · 0 评论