我试图将我的结构转换为char*,然后返回到结构.但我想我错过了一些东西.一旦它返回到struct,结构的只有一个属性是正确的.其余的都错了.这是我的代码.
#include <iostream>
using namespace std;
struct INFO {
unsigned char a;
int b;
int c;
char g[121];
}inf;
int main () {
char frame[128];
INFO test1 = INFO();
test1.a='y';
test1.b=4000;
test1.c=9000;
strcpy(test1.g, "Goodbye World");
sprintf(frame,(char*)&test1);
INFO test2 = INFO();
memcpy((char*)&test2, frame, sizeof(frame)); //shouldn't test2 have test1 values?
cout << test2.a<<"\n";
cout << test2.b<<"\n";
cout << test2.c<<"\n";
cout << test2.g<<"\n";
getchar();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:
y
-858993460
-858993460
????????????????????????????????????????????????????????????????????????????????
????????????????????????????????????
Run Code Online (Sandbox Code Playgroud)
只有test2.a是正确的.我将它转换为char*错误,还是我将其转换回来的方式?谢谢
我试图用FD来掌握空集的概念.说我有
R(A,B,C,D)
A-> E
B-> C
B-> D
Run Code Online (Sandbox Code Playgroud)
其中E是空集,从我的理解,这是一个微不足道的FD,因为你从A中学到了什么新东西.但是当你有
E-> A
B-> C
B-> D
Run Code Online (Sandbox Code Playgroud)
这究竟是什么意思?它只是"没有什么意味着A",所以A可以在定义的域中拥有它想要的任何值,还是A必须是NULL值?