You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
957 B
Markdown
35 lines
957 B
Markdown
# Memory
|
|
|
|
int i = 121313;
|
|
|
|
Tells the computer to put aside some memory for i, as an integer.
|
|
|
|
This is stored at a certain memory address.
|
|
|
|
%i;
|
|
printf("0x%p\n", &i);
|
|
|
|
The value will then be stored in that memory and can be referenced with the variable name, or with a pointer.
|
|
|
|
# Pointers
|
|
|
|
Pointer's can reference a memory address, this is like a varialbe that stores a memory address;
|
|
|
|
int * p = &i;
|
|
|
|
int * p = 0;
|
|
|
|
Pointers set to 0 have no memory address, but should be declared as such instead of with no initialisation, as no init could cause bugs and other issues.
|
|
|
|
# Derefferenced Pointers
|
|
|
|
Pointers can also be dereffernced to get the value being pointed to, istead of the memory address itself.
|
|
|
|
int j = *p;
|
|
|
|
j is a referrence of p's memory address, the actual value of the varialbe it's pointed to.
|
|
|
|
*p = 34234;
|
|
|
|
The derefferenced value of p can be altered, while keeping the same memory address through derefferencing.
|