Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/145.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 对数组成员使用静态结构_C++_Arrays_Struct - Fatal编程技术网

C++ 对数组成员使用静态结构

C++ 对数组成员使用静态结构,c++,arrays,struct,C++,Arrays,Struct,我正在尝试初始化和修改带有数组和成员的静态结构成员变量,因为我们需要两组引用。sturct看起来像是在创建一个静态成员: typedef struct ImgInfo { int extent[6]; double origin[3]; double spacing[3]; }; class myClass { public: static ImgInfo InternalImgInfo; } 我的问题是我无法设置变量。我试过一些方法,但都不管用。如何正确设置

我正在尝试初始化和修改带有数组和成员的静态结构成员变量,因为我们需要两组引用。sturct看起来像是在创建一个静态成员:

typedef struct ImgInfo
{
    int extent[6];
    double origin[3];
    double spacing[3];
};

class myClass {
public:
    static ImgInfo InternalImgInfo;
}
我的问题是我无法设置变量。我试过一些方法,但都不管用。如何正确设置包含数组成员的静态结构

i、 e.以下代码有什么问题:

static inline void GenerateImageInfo(int extent[6],double origin[3], double spacing[3], ImgInfo *rtn)
{
    for(int i = 0; i++; i < 6)
        rtn->extent[i] = extent[i];
    for(int i = 0; i++; i < 3){
        rtn->origin[i] = origin[i];
        rtn->spacing[i] = spacing[i];
    }
}
static inline ImgInfo GenerateImageInfo(int extent[6],double origin[3], double spacing[3])
{
    ImgInfo rtn;
    for(int i = 0; i++; i < 6)
        rtn.extent[i] = extent[i];
    for(int i = 0; i++; i < 3){
        rtn.origin[i] = origin[i];
        rtn.spacing[i] = spacing[i];
    }
    return rtn;
}
我将提到如何调用这些函数

int extent[6];
double spacing[3];
double origin[3];
// these arrays are filles with good values then: 
myClass::GenerateImageInfo(extent,spacing,origin,&myClass::InternalImgInfo);


您的代码中没有引用带有
myClass::InternalImgInfo
的静态结构成员。您的for循环表达式也有错误。测试是在中间,+++结束,也不是使用硬编码的数组长度,使用siZoof(数组)/siZeof(数组[0)]。我醒得太久了,谢谢。我不敢相信我做了那件事。最近我换语言太多次了。嗯。。这肯定只是循环表达式。谢谢你抓住了那个黑暗。
int extent[6];
double spacing[3];
double origin[3];
// these arrays are filles with good values then: 
myClass::GenerateImageInfo(extent,spacing,origin,&myClass::InternalImgInfo);
myClass::InternalImgInfomyClass = myClass::GenerateImageInfo(extent,spacing,origin);