当前位置: 首页 > news >正文

嵌入式C语言八股

内存安全

1.下面的C程序是否存在问题?如果存在问题如何在不破坏代码结构的前提下修改?

#include <stdio.h> #include <stdlib.h> #include <string.h> void getMemory(char *p,unsigned int size) { p = (char *)malloc(size); } int main() { char *str=NULL; getMemory(str,100); strcpy(str,"Hello World!"); printf(str); free(str); return 0; }

先直接丢给编译器编译一下试试:

出现了内存问题。

这是因为getMemory方法错误的使用了值传递方式分配内存,当函数执行完成之后,p分配的内存自动被释放了。正确写法示例:

#include <stdio.h> #include <stdlib.h> #include <string.h> void getMemory(char **p, unsigned int size) { if (p == NULL) return; *p = (char *)malloc(size); if (*p == NULL) { // 处理内存分配失败 return; } } int main() { char *str = NULL; getMemory(&str, 100); if (str != NULL) { strcpy(str, "Hello World!"); printf("%s", str); free(str); str = NULL; } return 0; }

字节序

如何用最简单的C语言代码判断处理器的字节序?

#include <stdio.h> int main(int argc,char *argv[]) { int i=1; char *c=(char *)&i; if(*c==1) printf("Little Endian\n"); else printf("Big Endian\n"); }

字节序是多字节数据的内存存储顺序,代码通过char*指针仅读取 int 变量的第一个(低地址)字节,判断该字节的值;(char *)&i强制转换指针类型,将 4 字节的 int “拆成” 1 字节读取,聚焦低地址字节;低地址字节为 1→小端序,为 0→大端序。

http://www.jsqmd.com/news/461767/

相关文章:

  • 代码随想录算法训练营第三十六天|完全背包理论基础、518. 零钱兑换 II、377. 组合总和 Ⅳ、70. 爬楼梯。
  • 探索并联型有源电力滤波器(APF)仿真模型:从原理到代码实践
  • 国密三级的中星微摄像头对接
  • 2026国内服务出色的膨胀型防火涂料品牌推荐与排行,电缆防火涂料/非膨胀型防火涂料,膨胀型防火涂料供应厂家电话 - 品牌推荐师
  • 闲置焕新正当时:2026年瑞祥全球购卡回收的五种简捷方法 - 猎卡回收公众号
  • 矽普半导体TOLL封装产品及市场应用
  • 免费用openclaw小白白嫖教程,一键安装小龙虾,无限token,再也不用担心用不起了
  • 基于PLC的多台设备最优启停控制:以水泵系统为例
  • 肇庆旧房翻新靠谱公司Top6:阿洲领衔,资质案例双硬核
  • 深入操作系统零拷贝技术
  • sharepoint search/query 返回 SearchRequest Invalid (Region is required when request with application p
  • 大模型与神经网络配置环境教程:Anaconda和CUDA安装与关联
  • WAVGATvcu控制器应用层软件策略大揭秘
  • Promptfoo:AI提示词测试与安全演练神器(以智普GLM为例)
  • 雷达检测人体呼吸心率时,呼吸谐波产生的本质是什么?
  • Qt开发与MySQL数据库教程(二)——MySQL常用命令以及示例
  • 解锁蛋白质的秘密:蛋白信息查询工具与使用指南
  • 2026年度商务礼品定制专业服务商排名前五深度测评
  • torch fbgemm.dll 损坏或缺失 问题
  • 2026年首推五个免费的pdf转换器 ,亲测稳定好用,第2个很多人都在用
  • 代码随想录算法训练营第五十天|99.岛屿数量、100.岛屿的最大面积
  • 回忆录优质品牌推荐:祖辈回忆录老照片修复/老华侨落叶归根回忆录与口述历史/老干部回忆录代笔与排版/重症家属生命回忆录抢救拍摄/选择指南 - 优质品牌商家
  • 【OpenClaw】史上最猛更新!AI记忆可自由插拔,开发者等了半年
  • Spring 的循环依赖
  • 探秘书匠策AI:解锁课程论文写作的“智慧钥匙”
  • 安装 OpenClaw
  • PbootCMS错误提示:执行SQL发生错误!错误:no such column: def1
  • 访问修饰符的基础面试题
  • 一款用在导弹上的自粘胶带:TJD-103(J)
  • canal和ES同步失败维护步骤