【发布时间】:2016-12-05 22:27:43
【问题描述】:
早上, 我希望有人在这里 假设我有以下结构,甚至更好的结构数组
struct foo {
int a;
char b[10];
char c;
};
struct foo* bar;
bar = (struct foo*) malloc(sizeof(struct foo)*10);
memset(bar, -1, sizeof(struct foo)*10);
而不是
for (counter = 0; counter < 10; ++counter)
memset(bar[counter],0,sizeof(char)*10);
如何在所有数组的char / b成员的所有数组中将b成员设置为0?
基本上我的问题有点类似于this一个
【问题讨论】:
-
sizeof(char)*8?为什么?8哪里来的? -
对不起,是的 10 这只是我的错误
-
您似乎正在使用 C 进行编码。让您的生活更轻松并使用 C++,例如
std::vector<foo>。这样你就不必玩任何malloc和memset恶作剧了。 -
OP 请说明是使用C还是C++
-
如果您使用 C,则使用
calloc(),它类似于malloc(),但会处理数学以确定正确的大小并将内存归零。