Привет, сообщество StackOverflow!
У меня произошла странная вещь в моем C коде.
Вот часть кода, о котором идет речь:
(" tab4 "- это массив длиной 16, 1 размер, заполненный int," tab "- это 2D-массив 4x4, заполненный нулями)
Я пытаюсь поместить значения tab4 в" tab "(каждая строка of «tab» получает 4 цифры tab4)
Я поместил несколько отпечатков для результатов тестирования
for (int u = 0; u < 4; u++)
{
tab[0][u] = tab4[u];
printf(" %d ", tab[0][u]);
}
printf("\n");
for (int yu = 4; yu < 8; yu++)
{
tab[1][yu] = tab4[yu];
printf(" %d ", tab[1][yu]);
}
printf("\n");
for (int cont = 8; cont < 12; cont++)
{
tab[2][cont] = tab4[cont];
printf(" %d ", tab[2][cont]);
}
printf("\n");
for (int ye = 12; ye < 16; ye++)
{
tab[3][ye] = tab4[ye];
printf(" %d ", tab[3][ye]);
}
printf("\n\n");
for (int i = 0; i < 4; i++)
{
printf("\n");
for (int y = 0; y < 4; y++)
{
printf(" %d ", tab[i][y]);
}
}
printf("\n\n");
Здесь происходит странная вещь, когда я печатаю «tab» построчно , он работает, но когда я распечатываю его целиком, это не так.
Вот мой результат:
This is the array, printed line by line
16 8 4 0
8 64 0 0
0 0 0 0
0 0 0 0
here is the array printed as a whole
16 8 4 0
0 0 0 0
8 64 0 0
0 0 0 0
Это может быть связано с некоторым предупреждением, которое у меня есть:
Код серьезности Описание Состояние подавления строки файла проекта Предупреждение C6386 Переполнение буфера при записи на «вкладку [1]»: доступный для записи размер составляет «16» байтов, но может быть записано «20» байтов.
Код серьезности Описание Состояние подавления строки файла проекта Предупреждение C6385 Чтение недопустимых данных из 'tab [1]': читаемый размер i s '16' байт, но можно прочитать '20' байтов.
(такое же предупреждение для всех циклов «for»)
Я знаю, это означает, что я пытаюсь писать куда-то, чего не должен, но я не знаю, как я мог бы сделать это
Спасибо за ответы!