- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的项目中有以下两个结构
typedef volatile struct {
unsigned char rx_buf[MAX_UART_BUF]; //Input buffer over UART
uint8_t rx_flag; //Indicates received data over UART
uint8_t rx_length; //length of the input buffer
} UART;
UART *gUART;
typedef volatile struct {
unsigned int target_s[NR_BLDC]; //Target Position in Signals
int distance_s[NR_BLDC]; //Distance between gActual_s[NR_BLDC] and gTarget_s
unsigned int old_s[NR_BLDC]; //Position before starting to new destination
unsigned int ramp_s[NR_BLDC]; //Duration of ramp(accelerate/decelerate) in Signals
unsigned int count_dt[NR_BLDC]; //Actual nr of PWM ISR timer calls
uint8_t dc_max[NR_BLDC]; //Maximal Duty Cycle set to reach the destination
} POSITIONING;
POSITIONING *gPOS;
当我写入 *gUART 中的 rx_flag 或 rx_length 时,它会以某种方式更改 *gPOS 结构中的 distance_s[0] 的内容(执行下面代码部分中的两行之一时会发生错误)。 i 的类型为 uint8_t 并且在限制范围内。
gUART->rx_length = i; //set receive byte length
gUART->rx_flag = 1; //Indicate that data ready for use
我不知道这是如何发生的,因为即使它是溢出,两个结构至少在 bss 部分中被多个字节分隔。
任何如何查找错误的技巧/想法。
提前谢谢
最佳答案
由于您没有显示更多代码,因此我必须做出两个假设:带有前缀 g
的变量是全局变量,并且您不初始化这些指针(即使它们指向任何地方)。
未初始化的全局变量由编译器零初始化。对于指针来说,这意味着它们被初始化为NULL
,这意味着两个指针都指向NULL
。取消引用 NULL
指针会导致 undefined behavior .
在您的具体情况下,您非常幸运,整个应用程序不会崩溃和烧毁,更具体地说,因为两个指针都指向NULL
,所以它们都指向相同的内存,这意味着更改一种结构将改变两者。
要么您需要实际使指针指向某个地方,要么根本不将它们声明为指针。
关于c - 溢出?找不到来源,奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28083848/
例如,我有一个父类Author: class Author { String name static hasMany = [ fiction: Book,
代码如下: dojo.query(subNav.navClass).forEach(function(node, index, arr){ if(dojo.style(node, 'd
我有一个带有 Id 和姓名的学生表和一个带有 Id 和 friend Id 的 Friends 表。我想加入这两个表并找到学生的 friend 。 例如,Ashley 的 friend 是 Saman
我通过互联网浏览,但仍未找到问题的答案。应该很容易: class Parent { String name Child child } 当我有一个 child 对象时,如何获得它的 paren
我正在尝试创建一个以 Firebase 作为我的后端的社交应用。现在我正面临如何(在哪里?)找到 friend 功能的问题。 我有每个用户的邮件地址。 我可以访问用户的电话也预订。 在传统的后端中,我
我主要想澄清以下几点: 1。有人告诉我,在 iOS 5 及以下版本中,如果您使用 Game Center 设置多人游戏,则“查找 Facebook 好友”(如与好友争夺战)的功能不是内置的,因此您需要
关于redis docker镜像ENTRYPOINT脚本 docker-entrypoint.sh : #!/bin/sh set -e # first arg is `-f` or `--some-
我是一名优秀的程序员,十分优秀!