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]);
}
Я пишу простой модуль, чтобы взять некоторые из командной строки input.During компиляции он дает предупреждениепредупреждения: индекс массива является выше границ массива [-Warray-оценка] в модуле
warning: array subscript is above array bounds [-Warray-bounds]
printk(KERN_INFO "myarray[%d] is %d",i,myarray[i]);
Почему это предупреждение, поскольку цикл, кажется, работает до i = 2, я видел некоторые вопросы по этому поводу, но это не помогло мне так много.
вы забыли запятыми между строками '" Option # N ... "'. C принимает его как одну строку. Голосование закрывается как опечатка. – dasblinkenlight
Даже не компилируется без предупреждения, говоря, что не так. –
Я сделал это правильно. Теперь проблема в том, что программа печатает параметры, затем обходит m = getchar и прячет переходы к следующему printf. Не могли бы вы рассказать мне причину? –