环形链表
141. 环形链表 - 力扣(LeetCode)
讯享网
利用快慢指针的思想一个一次走两步,一个一次走一步,要是有环一定会相遇的两个节点
解释一下空指针和野指针的概念并解释如何避免野指针?
空指针:是指没有指向任何一个存储单元的指针。当我们需要用到指针,但不确定指针指向何处时使用。
野指针:指向不可用区域的指针。对野指针进行操作可能会发生不可预知的错误。
指针变量没有被初始化。没有被初始化的指针则可能指向系统中任意一块存储空间,假如指向的空间正在被使用就会发生程序崩溃等问题。
两个指针指向同一块内存,指针与内存使用完毕后,只改变了一个指针的指向,没有改变另一个对象的指向,就会发生内存泄漏的问题。
C/C++ 中内存分为哪些区域?分别存储什么内容?
操作系统将内存分成
text段:存储程序的二进制指令,即程序源码编译后的二进制代码
data段:存储已被初始化的全局变量、常量
bss段:存储未被初始化的全局变量,和data段一样都属于静态分配,在编译阶段就确定了大小,不释放
stack段(栈空间):主要用于函数调用时存储临时变量的,这部分的内存是自动分配,自动释放的
heap段(堆空间):主要用于动态分配,C语言中malloc和free操作堆内存,Go语言主要靠GC自动管理这部分。
c++程序执行时将内存分成这四个部分
代码区:存放函数的二进制代码,由操作系统 进行管理
全局区:存放全局变量和静态变量以及常量
栈区:由编译器自动分配释放,存放函数的参数值、局部变量等
堆区:由程序员分配和释放,若不释放,程序结束时由操作系统回收


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/141478.html