最近使用splint的时候一直出现parse error,搜了很多资料也没个具体的说法,而且大家很多人遇到了这个问题。。在一个国外的网站上无意间看到一个不知道是不是splint的bug了,说是变量在使用前需要先定义,不知道是不是这个意思.
https://lab.cs.ru.nl/laquso/Case_studies:OpenSSH_Security_Analysis_with_Splint#Parse_Errors
我在使用中遇到的问题是:
int main(void)
{
int n ;
scanf(“%d”, &n);
int *pt = (int*)malloc(n*sizeof(int));
free(pt);
pt = NULL;
return 0;
}
这样的情况下parse都有问题
修改后:
这样不会出现parse error了,当然还是有警告,主要是scanf的返回值没有进行处理的警告。
其他情况下也有parse error发生,回头再好好研究下splint吧,毕竟是这么好的东东~~~