结构体(3)
结构体与动态内存
void Unit_To_Str(char* buff, unsigned int ip)
{
assert(buff != nullptr);
unsigned char x;
char str[10];
for (int i = 0;i < sizeof(unsigned int);++i)
{
x = ip & 0x000000FF;
ip = ip >> 8;
_itoa_s(x, str, 10); //将整形转化为字符串 将x以十进制转化为字符串
}
}
int main()
{
char buff[20];
unsigned int ip = 234532464;
Unit_To_Str(buff, ip);
return 0;
}
union IPNode
{
unsigned int addr;//ip;
struct
{
unsigned char s1;
unsigned char s2;
unsigned char s3;
unsigned char s4;
};
};
void Unit_To_Str(char* buff, int len,unsigned int ip)
{
assert(buff != nullptr);
IPNode x;
x.addr = ip;
sprintf_s (buff, len, "%d.%d.%d.%d", x.s4, x.s3, x.s2, x.s1);
}
int main()
{
char stra[] = { "128.11.3.31" };
char strb[] = { "377.12.34.11" }; //ip 错误表达377 应在0-255区间
char strc[] = { "125.11.34.23.23.43" }; //ipv4 错误表达 应为四位
//unsigned int;
int s1, s2, s3, s4;
//scanf_s("%d.%d", &s1, &s2);
//fscanf_s(stdin,"%d.%d", &s1, &s2);
sscanf_s(stra, "%d.%d.%d.%d", &s4, &s3, &s2, &s1);
return 0;
}
struct Node
{
short sx;
char str[3];
double dx;
char strb[7];
int age;
long int num;
};
int main()
{
Node x;
int dist = (int)((char*)&x.dx - (char*)&x);
printf("%d \n", dist);
return 0;
}