0

編集: Ipmcc のおかげで、彼はコメントで解決策を教えてくれました。

memset を使用して、動的に割り当てたメモリの最初の 4 バイトに 4 バイト アドレスを割り当てたいと考えています。私がやりたいことのコメント付きの例を以下に示します。これを行う方法を見つけたり、自分で理解しようとしたりする私の試みはすべて成功しませんでした.

どんな助けでも大歓迎です、ありがとう。

int main(void)
{
  // Define and assign eight bytes of memory
  unsigned char *data1 = new unsigned char [8];
  unsigned char *data2 = new unsigned char [8];

  // Set all eight bytes in both data1 and data2 to 0x00
  memset(data1, 0x00, 8);
  memset(data2, 0x00, 8);

  // Lets say that the address of *data1 is: 00508d30
  // Lets say that the address of *data2 is: 0050b180

  // I want to set the first four bytes in data1 to the
  // address of data2, so it would look something like this...
  memset(data1, 0x00, 1); ++data1;
  memset(data1, 0x50, 1); ++data1;
  memset(data1, 0xB1, 1); ++data1;
  memset(data1, 0x80, 1);
  data1 -= 3; // Reset pointer

  // But of course this is in no way practical or viable
  // since the addresses change each time (also it's not a good
  // practice to hard-code things in anyway). So I'm wondering
  // if there's a proper/feasible way to do this.

  return 0;
}
4

0 に答える 0