c语言 - EVA 插件:如何通过 temp 变量检查" temp = (volatile unsigned short*) add "中的加值



我正在尝试检查" temp =(挥发性无符号短*)中的添加值"在以下示例中通过temp变量添加:

main() {
    unsigned short add = 0x01;
    unsigned short val = 0x00;
    unsigned short *temp;
    temp = (volatile unsigned short*) add;
    *temp = val;
    //@ assert &temp == (unsigned short) 0x01;
}

但是我在行中遇到了这个错误。

[kernel] user error: incompatible types unsigned short and unsigned short **
[kernel] user error: stopping on file "test_func_call.c" that has errors. Add '-kernel-msg-key pp'for preprocessing command.

我知道这可能全都与C有关,但我也使用Frame-C的标签。希望我可以在检查frama-c的添加值时收到答案。

关于:

assert &temp == (unsigned short) 0x01;  

这是试图将temp(堆栈上的)地址与某些地址(除堆栈上的该位置)进行比较。自然, assert()被触发

访问内存中特定地址内容的正确方法是:

temp =  *(unsigned short *) 0x01;

最新更新