从代码角度,带你手把手调试(下)

简介: 从代码角度,带你手把手调试(下)

关于调试,真的太重要了!!!真的太重要了!!!真的太重要了!!

各位大佬,以及初学者一定要多加练习!!多去调试

调试的重要性:(摘自百度)


调试是一个程序员最基本的技能,其重要性甚至超过学习一门语言。不会调试的程序员就意味着他即使会一门语言,却不能编制出任何好的软件!



8.常见的错误


编译错误-语法错误

image.png


链接错误

1.函数未定义

image.png

2.符号名写错了(未定义标识符)

image.png


编译,链接,运行

image.png


9.常见的代码技巧

1.使用assert进行断言->防止空指针 引用头文件#include<assert.h>
2.尽量使用const修饰 -如某些字符串不需要做更改的就用const修饰
3.养成良好的编码风格
4.添加必要的注释
5.避免编码的陷阱
复制代码

10.NULL null Null的区别

读文档时:
NULL : 空指针
Null - \0
null - \0
复制代码

15.关于函数返回

//err

int* test()
{
    int a = 10;
    return &a;
}
int main()
{
    int *ret = test();
    *ret = 0;
    return 0;
}
复制代码


原因:a为局部变量,在栈区开辟.当函数返回时,a空间销毁,即a空间的地址已经还给操作系统了,但是ret接收了这个局部变量的地址,造成非法访问


目录
打赏
0
0
0
0
1
分享
相关文章
【C/C++ 实用工具】性能分析工具一览
【C/C++ 实用工具】性能分析工具一览
674 0
袋鼠:云原生底层系统探索和实践
随着云计算的发展,云原生概念已经开始成为一种被广泛接受的开发理念。本文将概述我们面向云原生场景在底层技术方面做的探索以及实践。文章根据云栖大会系统软件专场内容整理,演讲者:韩伟东
4204 1
Kubernetes、Docker和Containerd的关系解析
总的来说,Docker、Containerd和Kubernetes之间的关系可以用一个形象的比喻来描述:Docker就像是一辆装满货物的卡车,Containerd就像是卡车的引擎,而Kubernetes就像是调度中心,负责指挥卡车何时何地送货。
121 12
基于矢量控制器的PMSM永磁同步电机速度控制系统simulink建模与仿真
本课题基于MATLAB2022a,通过Simulink建模与仿真,实现PMSM永磁同步电机速度控制系统的矢量控制。系统采用PID控制器调节转速,输出包括电机转速跟踪曲线、PID控制器输出曲线及电磁转矩Te曲线。PMSM以其高效率和良好动态响应广泛应用于工业自动化和电动汽车领域。矢量控制利用Clarke和Park变换,将静止坐标系转换为旋转dq坐标系,实现电流解耦与精确控制,简化系统复杂度。仿真结果无水印,提供完整程序与模型。
|
6月前
|
操作系统智能助手OS Copilot新功能测评报告
作为一名运维开发工程师,我主要负责公司服务器和云资源的管理、故障排查、监控和性能优化。日常工作中常用Ansible管理多台服务器,但需记忆大量命令参数,复杂任务还需编写脚本,较为繁琐。 总体来看,OS Copilot在处理简单任务和提供指导方面表现出色,但在复杂任务处理上仍需改进。
156 18
为什么企业需要开展架构治理?
随着数字化转型加速,企业面临的技术和业务环境日益复杂,传统架构难以应对快速变化的需求。企业架构治理成为数字化转型的关键,通过确保技术与战略对接、优化资源利用、降低风险和复杂性,提升企业灵活性、效率和创新能力,支持快速响应市场变化,推动数字化转型成功。
340 7
为什么企业需要开展架构治理?
Nacos是如何工作的
Nacos是如何工作的
219 1
为什么有的tomcat8的bin目录里的exe有的没有
【6月更文挑战第9天】为什么有的tomcat8的bin目录里的exe有的没有
134 8
Google Earth Engine谷歌地球引擎提取多波段长期反射率数据后绘制折线图并导出为Excel
Google Earth Engine谷歌地球引擎提取多波段长期反射率数据后绘制折线图并导出为Excel
195 1
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问