c中的memset struct数组时出现分段错误
Posted
技术标签:
【中文标题】c中的memset struct数组时出现分段错误【英文标题】:Segmentation fault when memset struct array in c 【发布时间】:2017-05-19 04:24:24 【问题描述】:我正在尝试清空结构数组中的所有数据。
但事实证明是分段错误。 谁能帮帮我。
结构
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】:你需要改变
memset(&directory[i], 0, sizeof(directory));
到
memset(&directory[i], 0, sizeof(struct entry));
因为你想 memset 结构数组的单个元素
你也可以使用 memset 整个数组
memset(directory, 0, sizeof(directory));// single statement, no need to loop all elements
【讨论】:
谢谢,没想到这么简单sizeof(directory[0])
也将以相同的方式工作。使其与您在问题中提出的内容相似。以上是关于c中的memset struct数组时出现分段错误的主要内容,如果未能解决你的问题,请参考以下文章