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]);
}
コマンドライン入力を受け取る単純なモジュールを作成しています.コンパイル中に警告が表示されます
warning: array subscript is above array bounds [-Warray-bounds]
printk(KERN_INFO "myarray[%d] is %d",i,myarray[i]);
i = 2までループが実行されているように見えるため、警告が表示されるのはなぜですか。これに関するいくつかの質問を見ましたが、あまり役に立ちませんでした