Im пытается сохранить некоторые пользовательские имена в оборванном массиве. Однако во время выполнения я получаю сообщение об ошибке, и я пытаюсь понять, что пошло не так.Хранение строк в оборванном массиве
Мой код:
int num, count, i;
char *myNames[10];
printf("Enter the number of names: ");
scanf("%d" , &num);
fflush(stdin);
// Ask user to input the name
for(count = 0 ; count <= num ; count++)
{
printf("Enter a name: ");
scanf("%s" , myNames[count]);
fflush(stdin);
}
// To check if names are stored correctly
printf("%s", *myNames[1]);
return 0;
}
Grateful, если кто-нибудь может поделиться некоторую помощь, или по крайней мере мне точку в правильном направлении. Спасибо
Обратите внимание, что в этом коде (и в оригинале) вы выделяете 11 строк и помещаете их в массив, длина которого составляет всего 10 и, следовательно, имеет переполнение буфера .... Кроме этого, идеальный ответ! – lnafziger
Выделение строк (num + 1), фактически ... но вы правы, <= в строке for, вероятно, является ошибкой. –