Недавно, когда я делаю код на C, мне нужно объявить двумерный массив следующим образом:
char foo[20][20];
Позже я назначу символьные массивы foo
.
После этого мне нужно скопировать эти строки в некоторые другие переменные.
Копирование происходит так:
strcpy(date, foo[0]);
strcpy(name, foo[1]);
strcpy(des, foo[6]);
strcpy(cpy, foo[2]);
Поскольку я не поддерживал последовательность при копировании, как foo[0]
, foo[1]
, foo[6]
и foo[2]
, я получил немного мусора в p3
вместе с исходной строкой.
Позже я исправил последовательность к foo[0]
, foo[1]
, foo[2]
и foo[6]
при копировании и получил ожидаемый результат.
Пожалуйста, проясните это.
На самом деле указатели p1, p2, p3 и p4 являются переменными в структуре.
Структура идет как:
struct sample
{
char date[9];
char name[8];
char des[8];
char cpy[9];
};