【发布时间】:2017-08-15 10:05:55
【问题描述】:
尝试在python中用z3分析一些C程序,遇到了指针问题。我正在使用以下术语:
float * buffer = (float*)malloc(5*sizeof(float))
我将缓冲区解释为BitVec(32) 值
所以*buffer 应该是Real()。
应该没问题,但是我应该为
*(buffer+3) or *(buffer+i)
如果我像索引一样,应该如何编写断言
*(buffer-1) or *(buffer+10)
【问题讨论】:
-
如果你用 C 语言编程,那么只使用那个标签。不要使用不相关的标签(语言或其他)发送垃圾邮件。
-
另外,在 C 语言中,没有必要强制转换
malloc的返回值 - 它只能屏蔽错误。