2

unsigned long であるs_addr変数の最初のバイトを設定したいと思います。これは可能ですか?

これはバイト配列ではないため、次のようにアクセスすることはできません。

struct in_addr addr;
addr.s_addr[0] = 1; // Set this byte to the number 1, or in hex: 0x01

編集:

最初のバイトではなく、最後の (つまり 4 番目の) バイトが必要であることがわかりました。しかし、あなたの助けのおかげで、私は今持っています:

*((char *)&addr.s_addr + 3) = 1;
4

3 に答える 3

2

そのアドレスを取得し、それを a へのポインターとして解釈し、char逆参照します。

unsigned long ul;
*reinterpret_cast<char*>(&ul) = 0;
于 2013-10-23T12:54:13.090 に答える