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

阜康网站建设2022年最好用的搜索引擎

阜康网站建设,2022年最好用的搜索引擎,网站建设亿金手指花总14,宁波网络推广团队记录俩个keil5 STM32 的c语言编程中 ,编译器优化行为 和 指针内存分配问题。 目录 关闭Keil 编译器优化行为: malloc指针内存分配问题 多层嵌套的结构体: 用指针取值: 发现问题: 解决问题: 示例代码 关闭Ke…

 记录俩个keil5 STM32 的c语言编程中 ,编译器优化行为 和 指针内存分配问题。

目录

关闭Keil 编译器优化行为:

malloc指针内存分配问题

 多层嵌套的结构体:

用指针取值:

发现问题:

解决问题:

示例代码


关闭Keil 编译器优化行为:

在这里关闭,之前因为有编译器优化,导致作为参数传入处理的数组被清理了:

malloc指针内存分配问题

 多层嵌套的结构体:

我这有一个多层嵌套的结构体:这里不展示完全结构,

它的定义结构类似于这篇文章提到的结构体嵌套的结构:

C语言数据结构笔记3:Union联合体+结构体取8位Bool量-CSDN博客

用指针取值:

 指针获取结构体嵌套的某层结构体地址的值

但它没有被malloc分配空间

发现问题:

下载到STM32平台,结果发现每次上电后,第一次取值打印没问题,

后续都有问题,指针跑偏了:

而且是在第一次获取发送完正确的值之后,它瞬间把结构体存的值给修改了,导致后面都是读取的同一错误的值

但同样逻辑读取的最简函数的工程都没问题

解决问题:

添加malloc分配空间与free指针就行了:

最后补充一句:实测不指向NULL,重复获取寄存器值会卡死

 

示例代码

以下是一个简单的示例,演示如何使用 malloc 分配内存,然后使用 free 释放内存:

#include <stdio.h>
#include <stdlib.h>int main() {int n = 5; // 示例:分配一个包含 5 个整数的数组int *arr;// 分配内存arr = (int *)malloc(n * sizeof(int));// 检查内存分配是否成功if (arr == NULL) {printf("内存分配失败\n");return 1;}// 使用分配的内存for (int i = 0; i < n; i++) {arr[i] = i * 10; // 示例赋值}// 打印数组内容for (int i = 0; i < n; i++) {printf("arr[%d] = %d\n", i, arr[i]);}// 释放内存free(arr);// 将指针设置为 NULL,防止悬空指针arr = NULL;return 0;
}

http://www.dtcms.com/wzjs/77134.html

相关文章:

  • 免费网站空间 推荐接广告的平台
  • 深圳市住房建设与保障局官方网站百度服务中心人工客服
  • 南通学校网站建设推广方案模板
  • 苏州知名网站制作公司朔州网站seo
  • ui网站开发报价抖音引流推广免费软件app
  • 西安建设学院网站首页中国搜索引擎市场份额
  • 做网站能创业吗seo服务加盟
  • 台州网站建设网站推广2022黄页全国各行业
  • 做网站的广告语公众号软文范例100
  • 网站开发流程原理济南网站优化排名
  • 上海网站建设服务公司网页设计制作网站
  • 商标查询天眼查杭州网站优化企业
  • 南山做网站方案网站排名优化怎样做
  • 地产项目网站凡科建站下载
  • wordpress多站点demo新手小白怎么学做运营
  • 淮南网备查询百度竞价关键词怎么优化
  • php做的网站后台惠州网站营销推广
  • 作文网站网址大全百度网页版
  • 那些开店的网站是自己做的吗东莞网站制作外包
  • 如何在百度建立自己的网站今天刚刚发生的新闻台湾新闻
  • 菏泽去哪了做网站qq营销
  • 美国成年做爰网站网络营销方法有什么
  • 做网站商标分类做网页多少钱一个页面
  • 宝安区建设交易网站搜狗网站收录提交入口
  • 做推广用那个网站引擎seo如何优化
  • 苏州建设信息网站哪些浏览器可以看禁止访问的网站
  • 哪个网站的图片专门做详情页的游戏搬砖工作室加盟平台
  • 做网站必须要备案吗百度推广的广告靠谱吗
  • 网站开发背景和意义seo舆情优化
  • 平面设计师推荐网站网站产品怎么优化