Ошибка сегментации, когда массив массива memset в c
Я пытаюсь очистить все данные в массиве struct.
но это оказывается ошибкой сегментации. Может кто-нибудь, пожалуйста, помогите мне.
Struct
struct entry
{
char user;
char name[9];
char extension[4];
short blockcount;
short block[8];
};
struct entry directory[128];
главный()
for (int i = 0; i < 128; ++i)
{
memset(&directory[i], 0, sizeof(directory));
}
1 ответ
Решение
Вам нужно изменить
memset(&directory[i], 0, sizeof(directory));
в
memset(&directory[i], 0, sizeof(struct entry));
как вы хотите запоминать отдельный элемент массива структуры
Для memset всего арри вы также можете использовать
memset(directory, 0, sizeof(directory));// single statement, no need to loop all elements