Code::Blocks Forums

User forums => Help => Topic started by: Mr.Madguy on May 22, 2023, 08:23:03 pm

Title: Pointer arithmetic - casting pointer to other type
Post by: Mr.Madguy on May 22, 2023, 08:23:03 pm
I'm new to C++ and this language seems to be a little bit vague for me.

Please explain, for what reason I should use such code
Code
void* Src;
{
  t* TempSrc = (t*)Src;
  ...
  TempSrc++;
  ...
  Src = (void*)TempSrc;
};
instead of just
Code
  void* Src;
  (t*)Src++;
?

In second case compiler complains about incrementing void pointer, so I assume, that pointer casting doesn't work. And in case of ((t*)Src)++ compiler complains about lvalue.
Title: Re: Pointer arithmetic - casting pointer to other type
Post by: Miguel Gimenez on May 22, 2023, 08:42:22 pm
Programming questions are OT here.
Title: Re: Pointer arithmetic - casting pointer to other type
Post by: Mr.Madguy on May 22, 2023, 09:12:18 pm
Ok, seems to be fixed via following trick:
Code
Src = (void*)((t*)Src + 1);