好吧,我昨天问了Stackoverflow和bufferoverflow之间的区别,几乎被投票遗忘,没有新的信息.
所以它让我思考,我决定重新解释我的问题,希望得到答复,这实际上解决了我的问题.
所以这里什么都没有.
我知道有四个内存段(如果我错了,请纠正我).代码,数据,堆栈和堆.现在AFAIK代码段存储代码,而数据段存储与程序相关的数据.让我严重困惑的是堆栈和堆的目的!
根据我的理解,当你运行一个函数时,函数的所有相关数据都存储在堆栈中,当你递归调用函数内部的函数时,函数内部...当函数在输出上等待时在上一个函数中,函数及其必要的数据不会从堆栈中弹出.所以最终会出现堆栈溢出.(如果我错了,请再次纠正我)
我也知道堆的用途.正如我在某处所读到的,它用于在程序执行时动态分配数据.但这提出了更多解决我问题的问题.我最初在代码中初始化变量时会发生什么..它们是在代码段中还是在数据段中还是在堆中?数组存储在哪里?是在我的代码执行后,我的堆中的所有内容都被删除了吗?总而言之,请以更简单的方式告诉我有关堆的问题,请参阅malloc和alloc,因为我不确定我完全理解这些术语是什么!
我希望人们在回答这些问题时不要迷失在技术性方面,并且可以让这些术语变得简单,以便外行人理解(即使所描述的概念不是非常流行),并且随着我们的进展继续教育我们技术术语.我也希望这不是一个太大的问题,因为我认真地认为他们不能单独询问!
可能重复:
什么是堆栈溢出错误?
好吧,我听过它在编写程序时遇到的最常见的错误......我是编程新手,只有2年的编码,我从未遇到过这个错误!所以,冒着听起来非常愚蠢的风险,我想问一下......什么是stackoverflow以及什么是bufferoverflow?
stackoverflow是否与缓冲区溢出有关?
一个维基链接实际上不会帮助我因为我已经完成了它并且我不理解它.所以如果你能把它愚蠢......你会怎么说呢?