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

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

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

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

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


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



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接收了这个局部变量的地址,造成非法访问


相关文章
|
机器学习/深度学习 人工智能 API
TensorFlow Lite,ML Kit 和 Flutter 移动深度学习:1~5
TensorFlow Lite,ML Kit 和 Flutter 移动深度学习:1~5
558 0
|
算法 搜索推荐
【算法与数据结构】归并排序的代码实现(详细图解)以及master公式的讲解
【算法与数据结构】归并排序的代码实现(详细图解)以及master公式的讲解
345 0
|
Cloud Native Serverless 容器
袋鼠:云原生底层系统探索和实践
随着云计算的发展,云原生概念已经开始成为一种被广泛接受的开发理念。本文将概述我们面向云原生场景在底层技术方面做的探索以及实践。文章根据云栖大会系统软件专场内容整理,演讲者:韩伟东
4621 1
|
Linux PHP 开发工具
Centos7下Docker搭建WookTeam轻量级在线团队协作工具(失败)
Centos7下Docker搭建WookTeam轻量级在线团队协作工具(失败)
2481 0
Centos7下Docker搭建WookTeam轻量级在线团队协作工具(失败)
|
8月前
|
存储 Kubernetes 调度
Kubernetes、Docker和Containerd的关系解析
总的来说,Docker、Containerd和Kubernetes之间的关系可以用一个形象的比喻来描述:Docker就像是一辆装满货物的卡车,Containerd就像是卡车的引擎,而Kubernetes就像是调度中心,负责指挥卡车何时何地送货。
400 12
|
11月前
|
运维 监控
操作系统智能助手OS Copilot新功能测评报告
作为一名运维开发工程师,我主要负责公司服务器和云资源的管理、故障排查、监控和性能优化。日常工作中常用Ansible管理多台服务器,但需记忆大量命令参数,复杂任务还需编写脚本,较为繁琐。 总体来看,OS Copilot在处理简单任务和提供指导方面表现出色,但在复杂任务处理上仍需改进。
283 18
|
9月前
|
数据安全/隐私保护
基于矢量控制器的PMSM永磁同步电机速度控制系统simulink建模与仿真
本课题基于MATLAB2022a,通过Simulink建模与仿真,实现PMSM永磁同步电机速度控制系统的矢量控制。系统采用PID控制器调节转速,输出包括电机转速跟踪曲线、PID控制器输出曲线及电磁转矩Te曲线。PMSM以其高效率和良好动态响应广泛应用于工业自动化和电动汽车领域。矢量控制利用Clarke和Park变换,将静止坐标系转换为旋转dq坐标系,实现电流解耦与精确控制,简化系统复杂度。仿真结果无水印,提供完整程序与模型。
|
12月前
|
安全 Java 开发者
|
存储 Nacos 网络架构
Nacos是如何工作的
Nacos是如何工作的
400 1
|
机器学习/深度学习 算法 数据可视化
如果你的PyTorch优化器效果欠佳,试试这4种深度学习中的高级优化技术吧
在深度学习领域,优化器的选择对模型性能至关重要。尽管PyTorch中的标准优化器如SGD、Adam和AdamW被广泛应用,但在某些复杂优化问题中,这些方法未必是最优选择。本文介绍了四种高级优化技术:序列最小二乘规划(SLSQP)、粒子群优化(PSO)、协方差矩阵自适应进化策略(CMA-ES)和模拟退火(SA)。这些方法具备无梯度优化、仅需前向传播及全局优化能力等优点,尤其适合非可微操作和参数数量较少的情况。通过实验对比发现,对于特定问题,非传统优化方法可能比标准梯度下降算法表现更好。文章详细描述了这些优化技术的实现过程及结果分析,并提出了未来的研究方向。
444 1