- 博客(69)
- 资源 (1)
- 收藏
- 关注
原创 Linux进程地址空间
我们发现,输出出来的变量值和地址是一模一样的,很好理解呀,因为子进程按照父进程为模版,父子并没有对变量进行进行任何修改。我们发现,父子进程,输出地址是一致的,但是变量内容不一样!变量内容不一样,所以父子进程输出的变量绝对不是同一个变量。所以之前说‘程序的地址空间’是不准确的,准确的应该说成。我们在用C/C++语言所看到的地址,全部都是虚拟地址!我们在讲C语言的时候,老师给大家画过这样的空间布局图。在Linux地址下,这种地址叫做。但地址值是一样的,说明,该地址。可是我们对他并不理解!
2023-11-13 14:41:00
100
原创 Linux中的进程等待
我们要通过进程等待,来获取子进程的退出情况,即:知道父进程我布置给子进程的任务完成的怎么样了,要么关心,也可能不关心(通过设置选项可以选择关心与否)。的问题,僵尸进程杀不死,本节所讲的进程等待就是杀掉僵尸进程的方法,从而解决因为僵尸进程而导致的。通过系统调用wait/waitpid,来进行对进程运行状态进行检测与回收功能。通过代码实现:父进程通过调用wait/waitpid进行僵尸进程的回收问题!之前讲过,子进程退出,如果父进程不管不问,那么就可能会造成。,这时errno会被设置成相应的值以指示错误所在;
2023-11-03 15:56:06
142
原创 linux进程概念
计算机管理硬件描述起来,用struct结构体组织起来,用链表或其他高效的数据结构先描述,再组织。在生活中:1.管理者和被管理者是不需要见面的2.管理者在不见被管理者的情况下,如何做好的管理呢?只要能够得到管理信息,就可以在未来进行管理决策 ---- 管理的本质: 是通过对_数据 的管理,达到对人的管理3. 管理者和被管理者面都不见,我们怎么拿到对应的数据呢?通过执行者。在操作系统中,管理任何对象,最终都可以转化成为对某种数据结构的增删查改。孤儿进程。
2023-10-30 22:06:40
225
原创 既然有了malloc/free,C++中为什么还需 要new/delete呢?
new和delete操作符是类型安全的,它们知道所分配的内存将用于存储哪种类型的对象。malloc()和free()只关心内存的地址和大小,不关心所分配的内存的类型。构造函数和析构函数是C++中非常重要的特性,用于初始化和清理对象。使用new和delete可以确保在创建和删除对象时自动调用这些函数。总之,尽管malloc/free在某些情况下仍然可以在C++中使用,但使用new/delete通常更加安全、方便和高效。然而,C++提供了更强大和更安全的内存管理机制,即new和delete。
2023-10-24 20:52:44
301
原创 笔试强训day01
2、指针指向的变量被free或delete后没有置为NULL:在调用free或delete释放空间后,指针指向的内容被销毁,空间被释放,但是指针的值并未改变,仍然指向这块内存,这就使得该指针成为野指针。1、指针未初始化:指针变量在定义时不会自动初始化成空指针,而是随机的一个值,可能指向任意空间,这就使得该指针成为野指针。3、指针操作超过所指向变量的生存期:当指针指向的变量的声明周期已经结束时,如果指针仍然指向这块空间,就会使得该指针成为野指针。总的来说,要避免在程序中出现野指针,需要养成良好的编程习惯。
2023-10-17 21:33:14
187
原创 day01
链接:https://www.nowcoder.com/questionTerminal/6736cc3ffd1444a4a0057dee89be789b?来源:牛客网牛牛举办了一次编程比赛,参加比赛的有3*n个选手,每个选手都有一个水平值a_i.现在要将这些选手进行组队,一共组成n个队伍,即每个队伍3人.牛牛发现队伍的水平值等于该队伍队员中第二高水平值。例如:一个队伍三个队员的水平值分别是3,3,3.那么队伍的水平值是3一个队伍三个队员的水平值分别是3,2,3.那么队伍的水平值是3。
2023-09-25 22:08:42
170
原创 C++中的多态
多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。比如Student继承了Person。Person对象买票全价,Student对象买票半价。必须通过基类的指针或者引用调用虚函数被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写例如如下购票产生的多态:public:cout << "全价买票" << endl;public:cout << "半价买票" << endl;return 0;全价买票。
2023-09-18 21:22:46
394
原创 【C++中的string类【上篇】】
同时也需要注意,向容器中添加元素时可能会引起容器的大小变化,可能会影响指向容器元素的迭代器等,因此需要特别注意代码的正确性和性能。提高程序的安全性:C++的字符串类在处理字符串时,可以自动保证字符串的安全性,因为字符串长度是动态调整的,可以避免程序假溢出,而手动处理字符串时可能会出现越界问题,这会导致程序的不安全性。rfind()函数是C++ string库中的一个函数,它的作用是在指定的字符串中从后往前查找指定的子串,如果找到则返回该子串在原字符串中所在的起始位置,如果找不到,则返回一个特定的值。
2023-05-27 17:56:38
466
原创 c++中的SOLID原则是什么?
SOLID原则是一组指导原则,它们旨在帮助程序员编写高质量、易于维护和可扩展的代码。在C++中,这些原则特别重要,因为C++是一种高度灵活且复杂的编程语言,它可以实现许多不同的编程范式和设计模式。总结一下,在使用C++编写软件时,我们应该尽力遵循这些SOLID原则,以获得高质量、可维护和可扩展的代码。在C++中,里氏替换原则是指每个派生类都应该能够替换其基类,并且能够在代码中正常运行,而不会破坏原有的功能。在C++中,开放封闭原则是指软件实体(例如类、模块或函数)应该对扩展开放,对修改关闭。
2023-05-26 22:14:56
299
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人