0
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までルー​​プが実行されているように見えるため、警告が表示されるのはなぜですか。これに関するいくつかの質問を見ましたが、あまり役に立ちませんでした

4

2 に答える 2