#arrays #c #string #structure
#массивы #c #строка #структура
Вопрос:
Итак, я в основном пытаюсь назначить свою структуру строками 0, чтобы позже я мог изменить некоторые значения, но я получаю предупреждение «strcpy делает указатель из целого числа без приведения», и код не работает, как я могу это исправить?
моя структура такова
struct node{ char ID[3]; char Name[40]; char Code[3]; };
и вот моя функция
void initialiseArray(struct node* arr){ int i; for(i = 0; i lt; capacity; i ){ strcpy(arr[i].ID[3], "0"); strcpy(arr[i].Name[40], "0"); strcpy(arr[i].Code[3], "0"); } }
Комментарии:
1. Почему вы пишете индекс для
char
массивов при вызовеstrcpy
? Особенно тот, который находится за пределами дозволенного?
Ответ №1:
arr[i].ID[3]
в определении функции должно быть arr[i].ID
. То же самое касается двух других полей. arr[i].ID[3]
является [несуществующим] символом строки, а не самой строкой.