mar*_*rkh 0 c arrays struct for-loop memset
我试图清空struct数组中的所有数据.
但事实证明是分段错误.有人可以帮帮我吗.
结构
struct entry
{
char user;
char name[9];
char extension[4];
short blockcount;
short block[8];
};
struct entry directory[128];
Run Code Online (Sandbox Code Playgroud)
主要()
for (int i = 0; i < 128; ++i)
{
memset(&directory[i], 0, sizeof(directory));
}
Run Code Online (Sandbox Code Playgroud)
你需要改变
memset(&directory[i], 0, sizeof(directory));
Run Code Online (Sandbox Code Playgroud)
至
memset(&directory[i], 0, sizeof(struct entry));
Run Code Online (Sandbox Code Playgroud)
因为你想memset结构数组的单个元素
为了整个arry你也可以使用
memset(directory, 0, sizeof(directory));// single statement, no need to loop all elements
Run Code Online (Sandbox Code Playgroud)