quartz/content/notes/10-intro-to-c-arrays-malloc-free.md
2022-08-11 11:19:21 +12:00

55 lines
1.1 KiB
Markdown

---
title: "10-intro-to-c-arrays-malloc-free"
aliases:
tags:
- cosc204
---
# Arrays
- must declare with size
``` c
uint32_t array[10];
float matrix[5][6];
double balance[5] = {1000.0, 2.0, 3.4} //last two elementes will be initalised to zero
double balance[] = {1000.0, 2.0, 3.4} //size is calculated automatically
```
- do not have methods
- array.size etc
- not bounds checked
- can write past the end
- to know must keep trach yourself or use sentinel value
- 'H' 'e' 'l' 'l' 'o' '\0' <- sentinel value
``` c
//find the length of an array
size_t strlen(const char *of){
char *check = of;
while(*check != '\0')
check++;
return check - of;
}
```
# quoted strings
- "Hello World"
- must be const - not allowed to change them
- `const char *hello_world = "hello world"`
- can use then in place of char arrays
# Memory
when we decalre an array we are saying "choose somewhere in memory to put this number of that and call it thing"
```c
that thing[this];
uint_t byte_array[1024];
```
- compiler chooses somewhere in memory
- the name of the array maps to the location