如何将指向C(而不是C+;+;)中结构的指针数组设为null

如何将指向C(而不是C+;+;)中结构的指针数组设为null,c,arrays,pointers,null,C,Arrays,Pointers,Null,我目前正在尝试将指向结构的指针数组设为Null。任何帮助或文档都很好。我是初学者,所以请尽可能清楚 下面是我的代码示例。抱歉,如果我没有正确列出此内容,这是我第一次发布。请在此处输入代码 #include "stdlib.h" enum boxtype { Card, Mask, }; typedef struct { enum boxtype type; int L; int H; int x; int y; int

我目前正在尝试将指向结构的指针数组设为Null。任何帮助或文档都很好。我是初学者,所以请尽可能清楚

下面是我的代码示例。抱歉,如果我没有正确列出此内容,这是我第一次发布。请在此处输入代码

#include "stdlib.h"

enum boxtype
{
    Card,
        Mask,
};

typedef struct 
{
    enum boxtype type;
    int L;
    int H;
    int x;
    int y;
    int Area;
    Float ManBox;
    Float WomanBox;
}Boxes;

typedef struct
{
    Boxes Info;
    float Hight;
}Male;

typedef struct
{
    Boxes Info;
    int Size;
}Female;


void main()
{
    Man Male[100];
    Woman Female[100];
    Boxes *Spaces[600]; //This is the array of pointers that needs to be nulled.

}

如果使用
calloc()
进行初始化,则在返回内存之前,内存将为零。

可以使用初始化器列表初始化数组,如下所示:

Boxes *Spaces[600] = { NULL };

数组中的所有元素都将被设置为空。

for(int i=0;i你说的“空”是什么意思?将数组元素初始化为空指针?
box*Spaces[600]={0};
会这样做。
main
的返回类型应该是
int
。将其设置为
int main(void)
。它是
int main(void)
;返回值是一个
int
?这是错误的,它没有分配600个盒子的内存并将它们置为空,当您尝试使用内存时,它将出错。正确的,它将为盒子类型分配一个包含600个指针的数组,并将它们设置为空。编辑:600个空指针:+1:在我看来很好;编译器将使用空值初始化数组,无论它是函数scope存储(如示例中所示)或文件范围存储。感谢您的帮助。我会尝试一下,并将其应用到我的代码中。我还不知道这是否正是我想要的,但感谢您的及时准确响应。我想我误解了,我看不到这里面的实用程序。如果您需要指针数组,为什么要静态地为它们分配内存,尤其是在e堆栈…制作了一个相当大的堆栈帧。。。