this post was submitted on 08 Jul 2023
16 points (100.0% liked)

C++

1777 readers
1 users here now

The center for all discussion and news regarding C++.

Rules

founded 1 year ago
MODERATORS
 

Hey all, teaching myself CPP through a few books (and a little bit of CS in general through CS50) and hit a road block.

I understand what pointers are, and understand they’re a big part of programming. My question is why?

What do you use pointers for? Why is forwarding to a new memory address preferable to just changing the variable/replacing what’s already at the memory address or at a new one? Is it because new data could exceed the size of that address already allocated?

Thanks in advance!

you are viewing a single comment's thread
view the rest of the comments
[–] graphicsguy 5 points 1 year ago

Pointers also allow you to do fun and dangerous things like casting between types!

For example, if you're implementing your own memory allocator, at the base level your allocator only really cares about how many bytes are being requested (along with alignment, offset, other things) so you'd probably just implement it to return a char*, u8*, or void* pointing to the blob of memory you allocated with new, malloc, or whatever scheme you've cooked up. The calling code or higher level allocator code could then cast it to the actual type