我在为cv
分配值时遇到问题。根据我的下面的代码,我得到error: invalid initializer
行:
ChVec cv = r->cv;
有人知道问题可能是什么吗?
感谢您的帮助。
tuple.c
#include "defs.h"
#include "tuple.h"
#include "reln.h"
#include "hash.h"
#include "chvec.h"
#include "bits.h"
Bits tupleHash(Reln r, Tuple t)
{
ChVec cv = r->cv;
...
...
}
chvec.h
#include "defs.h"
#include "reln.h"
#define MAXCHVEC 32
typedef struct {
Byte att;
Byte bit;
} ChVecItem;
typedef ChVecItem ChVec[MAXCHVEC];
reln.h
#ifndef RELN_H
#define RELN_H 1
typedef struct RelnRep *Reln;
#include "defs.h"
#include "tuple.h"
#include "chvec.h"
#include "page.h"
struct RelnRep {
Count nattrs; // number of attributes
Count depth; // depth of main data file
Offset sp; // split pointer
Count npages; // number of main data pages
Count ntups; // total number of tuples
ChVec cv; // choice vector
char mode; // open for read/write
FILE *info; // handle on info file
FILE *data; // handle on data file
FILE *ovflow; // handle on ovflow file
};
答案 0 :(得分:2)
类型ChVec
是一个数组,您不能使用另一个数组初始化数组(就像您可以分配给数组变量一样)。
相反,您需要复制数组:
ChVec cv;
memcpy(cv, r->cv, sizeof cv);
答案 1 :(得分:2)
无法按照您的方式分配数组。
您必须使用ChVec cv;
memcpy(cv, r->cv, sizeof(cv));
复制内容:
php -dmemory_limit=4g script.php