我无法将一个结构变量 ( R2 = R1
)分配给另一个结构变量。请帮助我理解为什么以下程序没有被编译以及将一个结构变量分配给另一个的最佳方法是什么?
我厌倦了指针的方式。仍然没有编译代码......
代码1:
#include<stdio.h>
struct Record
{
int ID;
char Name[];
} R1 = {1234, "King"}, R2;
R2 = R1;
int main()
{
printf("%d %s \n", R1.ID, R1.Name);
printf("%d %s \n", R2.ID, R2.Name);
}
代码2:
#include<stdio.h>
struct Record
{
int ID;
char Name[];
} R1 = {1234, "King"}, *R2;
R2 = &R1;
int main()
{
printf("%d %s \n", R1.ID, R1.Name);
printf("%d %s \n", R2->ID, R2->Name);
}
你可以试试这个。
#include <stdio.h>
#include <string.h>
typedef struct _Record
{
int ID;
char Name[10];
} Record;
int main()
{
Record R1, R2;
R1.ID = 1234;
strcpy(R1.Name, "king");
R2 = R1;
printf("%d %s \n",R1.ID,R1.Name);
printf("%d %s \n",R2.ID,R2.Name);
}
>>>
1234 king
1234 king
正如@piedar 所说,以下也有效
#include <stdio.h>
#include <string.h>
struct _Record
{
int ID;
char *Name;
} R1={1234,"king"}, R2;
int main()
{
R2 = R1;
printf("%d %s \n",R1.ID,R1.Name);
printf("%d %s \n",R2.ID,R2.Name);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句