【发布时间】:2010-08-13 04:32:04
【问题描述】:
gcc 4.4.4 c89
指针与数组不同。但是数组可以衰减为指针。
我只是在使用 memset,它的第一个参数是一个指针。我想初始化我的结构数组。
即
struct devices
{
char name[STRING_SIZE];
size_t profile;
char catagory;
};
struct devices dev[NUM_DEVICES];
memset(dev, 0, (size_t)NUM_DEVICES * sizeof(*dev));
开发 == &dev[0]
但是我应该传递第一个参数有这个:
memset(&dev, 0, (size_t)NUM_DEVICES * sizeof(*dev));
非常感谢您的建议,
【问题讨论】:
-
我知道这不完全是你的问题,但如果你这样做只是为了初始化你的
struct数组,你真的应该使用类似下面的struct devices dev[NUM_DEVICES] = { { 0 } };甚至更好,如果你右侧有 C99{ { .name = "" }}。