如何将指向C(而不是C+;+;)中结构的指针数组设为null
我目前正在尝试将指向结构的指针数组设为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
#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堆栈…制作了一个相当大的堆栈帧。。。