首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Splint和MySQL:作为非空参数传递的空存储

Splint和MySQL:作为非空参数传递的空存储
EN

Stack Overflow用户
提问于 2014-08-07 09:47:28
回答 1查看 495关注 0票数 0

我试图用一个简短的CGI脚本来使用夹板,但是得到这个错误:

Null storage passed as non-null param: mysql_init(NULL)

如果mysql_initNULL,则定义它返回一个新值,如果不是,则将结果存储在param中。但是,如果我试着

代码语言:javascript
复制
MYSQL* connection;
mysql_init(connection);

我会得到:

Variable connection used before definition

如何解决这个问题?当然,一种方法是注释mysql.h,这样夹板就不会抱怨了。是我唯一的解决办法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-07 11:00:37

您可以编辑mysql.h以将该参数注释为/*@null@*/,也可以禁用该特定代码行的警告。

代码语言:javascript
复制
/*@-nullpass@*/
connection = mysql_init(NULL);
/*@=nullpass@*/

顺便说一下,请注意不要将未初始化的变量传递给函数:

代码语言:javascript
复制
MYSQL* connection; /* this pointer contains garbage at this point */
mysql_init(connection); /* this may get a segmentation fault */

相反,您应该这样做:

代码语言:javascript
复制
MYSQL* connection = NULL; /* initialize to NULL */
connection = mysql_init(connection); /* get a hold of the new object created */
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25179289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档