c中的memset结构数组时出现分段错误
Segmentation fault when memset struct array in c
我正在尝试清空结构数组中的所有数据。
但事实证明是段错误。
谁能帮帮我。
结构
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));
}
你需要改变
memset(&directory[i], 0, sizeof(directory));
至
memset(&directory[i], 0, sizeof(struct entry));
因为你想 memset 结构数组的单个元素
要 memset 整个 arry 你也可以使用
memset(directory, 0, sizeof(directory));// single statement, no need to loop all elements
我正在尝试清空结构数组中的所有数据。
但事实证明是段错误。 谁能帮帮我。
结构
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));
}
你需要改变
memset(&directory[i], 0, sizeof(directory));
至
memset(&directory[i], 0, sizeof(struct entry));
因为你想 memset 结构数组的单个元素
要 memset 整个 arry 你也可以使用
memset(directory, 0, sizeof(directory));// single statement, no need to loop all elements