【发布时间】:2019-05-18 01:28:34
【问题描述】:
我想将数组的值分配给指针或需要更好的方法来执行以下操作。
我有一个结构
struct ver{
int *a;
int *b
int *c;
}
struct Versions{
int ver1[3];
int ver2[3];
int ver3[9];
}
static const Versions versionsinfo[] {
"001234",
{0,18,0},
"000000"
};
static Temp_Data;
Versions * GetVersions() {
Versions * pt = NULL;
memcpy(&Temp_Data,&versionsinfo[1]);
pt = &Temp_Data;
return pt ;
}
struct Versions *pointer;
pointer = GetVersions();
struct ver *newVer;
newVer->a= pointer->ver1;
newVer->b= pointer->ver2;
newVer->c= pointer->ver3;
我想将 Ver1 的值分配给 struct ver 的成员,a、b 或 c。
谁能告诉我这在 C 中是否可行。
【问题讨论】:
-
您需要为
struct ver *newVer;分配一些内存,然后才能复制到其成员。 -
"...想要分配 Ver1 的值..." --> 数组不能分配。像
newVer->a=Ver1这样的代码会将Ver1[0]的地址分配给指针newVer->a。 pranathi,更详细地描述您的总体目标。 -
你实际上想做什么?这闻起来有点像XY Problem
-
newVer指向什么? -
pranathi,提示,
newVer在newVer->a= Ver1;行中的值是多少?前一行struct ver *newVer;不会将newVer初始化为任何内容。
标签: c arrays pointers structure