当c中的memset结构数组时出现分段错误

时间:2017-05-19 04:24:25

标签: c arrays for-loop struct memset

我正在尝试清空struct数组中的所有数据。

但事实证明是分段错误。 有人可以帮助我。

STRUCT

struct entry
{
   char  user;
    char  name[9];
    char  extension[4];
    short blockcount;
    short block[8];
};
struct entry directory[128];

main()的

for (int i = 0; i < 128; ++i)
{
      memset(&directory[i], 0, sizeof(directory));
}

1 个答案:

答案 0 :(得分:5)

您需要更改

memset(&directory[i], 0, sizeof(directory));

memset(&directory[i], 0, sizeof(struct entry));

因为你想memset结构数组的单个元素

要设置整个arry,您也可以使用

memset(directory, 0, sizeof(directory));// single statement, no need to loop all elements