怎么初始化一个结构体数组

时间:2021-09-23 19:47:10
struct point{  
    float x;
float y;
};

point Q[20];怎样将其所有元素初始化为0呢?是不是用Q=0???

15 个解决方案

#1


point Q[20] = {0};

#2


memset

#3


memset(Q,0,sizeof(Q))

#4


写个默认构造函数又何妨?

struct point{ 
point()
{
x=y=0.0f;
}
    float x;
float y;
}; 

#5


楼主的定义有问题应该这样:
struct point Q[20];
初始化这个结构体数组:
memset(Q,0,sizeof(struct point)*20)

#6


引用 4 楼 pbdwadr 的回复:
写个默认构造函数又何妨?

C/C++ codestruct point{ 
point()
{
x=y=0.0f;
}float x;float y;
};


这是C,不是C++。。

#7


那就只好memset了

#8


memset

#9


引用 6 楼 localxiao 的回复:
引用 4 楼 pbdwadr 的回复:
 写个默认构造函数又何妨?

 C/C++ codestruct point{
 point()
 {
 x=y=0.0f;
 }float x;float y;
 };


 这是C,不是C++。。

.。。。。就是啊,这个是C语言·~

#10


还有一个问题了,我这里如果写一个子函数,怎么将我主函数的Q[20]传递到子函数中呢?我的子函数也是一个point compute(***)这个形参怎么写啊!!!!救命!~~是不是point compute(point Q[20],...其它形参...)???在子函数中,我借用Q的数据计算了之后,还是子函数还是返回一个point类型的二维数组,然后怎么返回呢?是不是return U[];     ?????我看书都看不懂,看得我晕头转向的~上来这里大家一说我就明白~~

#11


数组返回用指针

函数形参是数组,实参用数组名

#12


引用 10 楼 wiwengweng 的回复:
还有一个问题了,我这里如果写一个子函数,怎么将我主函数的Q[20]传递到子函数中呢?我的子函数也是一个point compute(***)这个形参怎么写啊!!!!救命!~~是不是point compute(point Q[20],...其它形参...)???在子函数中,我借用Q的数据计算了之后,还是子函数还是返回一个point类型的二维数组,然后怎么返回呢?是不是return U[];     ??-

void compute(point q[],int len1,point out[],int len2)//len1为q的大小,len2为out的大小
{
// 根据q计算完后把要返回的point数组存入out[]里面就可以了
//c语言不能返回数组类型
return;
}

#13


point Q[20] = {0};

#14


memset(Q,0,sizeof(Q))

#15


point Q[20] = {0};就可以了

#1


point Q[20] = {0};

#2


memset

#3


memset(Q,0,sizeof(Q))

#4


写个默认构造函数又何妨?

struct point{ 
point()
{
x=y=0.0f;
}
    float x;
float y;
}; 

#5


楼主的定义有问题应该这样:
struct point Q[20];
初始化这个结构体数组:
memset(Q,0,sizeof(struct point)*20)

#6


引用 4 楼 pbdwadr 的回复:
写个默认构造函数又何妨?

C/C++ codestruct point{ 
point()
{
x=y=0.0f;
}float x;float y;
};


这是C,不是C++。。

#7


那就只好memset了

#8


memset

#9


引用 6 楼 localxiao 的回复:
引用 4 楼 pbdwadr 的回复:
 写个默认构造函数又何妨?

 C/C++ codestruct point{
 point()
 {
 x=y=0.0f;
 }float x;float y;
 };


 这是C,不是C++。。

.。。。。就是啊,这个是C语言·~

#10


还有一个问题了,我这里如果写一个子函数,怎么将我主函数的Q[20]传递到子函数中呢?我的子函数也是一个point compute(***)这个形参怎么写啊!!!!救命!~~是不是point compute(point Q[20],...其它形参...)???在子函数中,我借用Q的数据计算了之后,还是子函数还是返回一个point类型的二维数组,然后怎么返回呢?是不是return U[];     ?????我看书都看不懂,看得我晕头转向的~上来这里大家一说我就明白~~

#11


数组返回用指针

函数形参是数组,实参用数组名

#12


引用 10 楼 wiwengweng 的回复:
还有一个问题了,我这里如果写一个子函数,怎么将我主函数的Q[20]传递到子函数中呢?我的子函数也是一个point compute(***)这个形参怎么写啊!!!!救命!~~是不是point compute(point Q[20],...其它形参...)???在子函数中,我借用Q的数据计算了之后,还是子函数还是返回一个point类型的二维数组,然后怎么返回呢?是不是return U[];     ??-

void compute(point q[],int len1,point out[],int len2)//len1为q的大小,len2为out的大小
{
// 根据q计算完后把要返回的point数组存入out[]里面就可以了
//c语言不能返回数组类型
return;
}

#13


point Q[20] = {0};

#14


memset(Q,0,sizeof(Q))

#15


point Q[20] = {0};就可以了