sudo ln -s libmysqlclient.so.20.3.2 libmysqlclient_r.so.16
我正在编写一个简单的模块来接受一些命令行输入。在编译时它会发出警告
static int myarray[2]={-1,234};
module_param_array(myarray,int,&arrayargc,0);
MODULE_PARM_DESC(myarray,"Integer Array");
static int __init module_init_2(void)
{
int i;
for(i=0;i< (sizeof myarray/sizeof(int));i++);
{
printk(KERN_INFO "myarray[%d] is %d",i,myarray[i]);
}
为什么它会发出警告,因为循环似乎一直运行到i = 2,我看到了一些关于此的问题,但这对我没那么帮助
答案 0 :(得分:3)
您的开头printf
为三个字符串指定了三个%s
,但您只为该printf
提供了一个字符串,因此崩溃。
来自Weather Vane评论的注释:
请记住,C编译器将连接仅由空格分隔的字符串文字。
这意味着即使您在三行中分别写了三个“选项#1”,“选项#2”等,它们仍然只计算为一个字符串(连接后)。通过添加修复每行末尾的逗号以防止连接(因此你有三个单独的字符串)。
答案 1 :(得分:0)
你可以试试这个。我假设您要输出两个成功读取的值。
0