面试(十)大疆 安全开发 C++1面

1. 在C++开发中定义一个变量,若不做初始化直接使用会怎样?

如果该变量是一个普通变量,则如果对其进行访问,会返回一个随机值,int类型不一定为0,bool类型也不一定为false

如果该变量为一个静态变量,则初始值都是一个0;

如果该变量是一个指针,那么在后续程序运行中很容易因为访问问题发生程序崩溃

2、 程序出现崩溃,如何调试

在VS2019的编译环境下鼠标点击或者F9在鼠标光标位置设置断点,使用F5开始调试,调用内存窗口、调试窗口、堆栈窗口可以协助调试

在LInux的编译环境下 对该文件进行gcc格式的编译,

        gcc -g main.c -o main

使用gdb ./filename 来进入调试 输入start进入单步调试状态,输入run直接运行

进入调试后 next逐步调试,step逐语句调试

3、一个程序是否创建线程越多越好?怎样决定创建线程的数量?

任务处理中,分为俩种程序:

        ①cpu密集型程序:一段数据中几乎都是数据的运算(对cpu的使用率特别高)

        ②io密集型程序:一段程序中大部分都是IO操作(大部分时间都用在IO等待,因此对cpu的使用率并不高)

线程的创建不是越多越好,线程之间每运行完一个cpu时间片就会轮转到下一个线程来继续运行,可是如果执行流越来越多,就会造成线程之间轮转切换的时间越来越多,大量的切换调度方面上的开销就会浪费资源。

线程创建的数量可以通过压力测试来找到最合适的数量。

5. 一个

你可能感兴趣的:(面试,面试,职场和发展)