From 8269a15a5663577fdd4a1fe9f8010d0d9dd45e0f Mon Sep 17 00:00:00 2001 From: daviddoji Date: Tue, 27 Jul 2021 18:35:01 +0200 Subject: [PATCH] Module 11: How memory works --- how_memory_works/addresses_&_pointers.c | 19 ++++++++++ how_memory_works/b | Bin 0 -> 16800 bytes how_memory_works/c | Bin 0 -> 16736 bytes how_memory_works/d | Bin 0 -> 24368 bytes how_memory_works/e | Bin 0 -> 28352 bytes how_memory_works/heap.c | 22 +++++++++++ how_memory_works/passing_values.c | 48 ++++++++++++++++++++++++ how_memory_works/to_upper.c | 19 ++++++++++ 8 files changed, 108 insertions(+) create mode 100644 how_memory_works/addresses_&_pointers.c create mode 100755 how_memory_works/b create mode 100755 how_memory_works/c create mode 100755 how_memory_works/d create mode 100755 how_memory_works/e create mode 100644 how_memory_works/heap.c create mode 100644 how_memory_works/passing_values.c create mode 100644 how_memory_works/to_upper.c diff --git a/how_memory_works/addresses_&_pointers.c b/how_memory_works/addresses_&_pointers.c new file mode 100644 index 0000000..53c1398 --- /dev/null +++ b/how_memory_works/addresses_&_pointers.c @@ -0,0 +1,19 @@ +#include +using namespace std; + +int main() { + char c = 'A'; + cout << c << "\n"; + // cout << &c << "\n"; // address of c. The compiler will show again the value and not the address + void* p = &c; // let's define a pointer to get the address + cout << p << "\n"; + cout << sizeof(c) << "\n"; // it'll give 1 byte (for chars) + int i = 10; + void* q = &i; + cout << q << "\n"; + cout << sizeof(i) << "\n"; // it'll give 4 bytes (for ints) + char* r = &c; // the pointer "r" will hold the address of c + cout << c << "\n"; // will print "A" + *r = 'B'; // * is the "dereference" op + cout << c << "\n"; // will print "B" because the pointer was modified right before +} \ No newline at end of file diff --git a/how_memory_works/b b/how_memory_works/b new file mode 100755 index 0000000000000000000000000000000000000000..d73b1e97454aff4397f63d840093317c4ed03f02 GIT binary patch literal 16800 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 Ps<=j3(7e%^Tt)FO;sz?0 literal 0 HcmV?d00001 diff --git a/how_memory_works/c b/how_memory_works/c new file mode 100755 index 0000000000000000000000000000000000000000..a652611bf4d503c1a8f9eee9f5bf9ad26d02b810 GIT binary patch literal 16736 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 literal 0 HcmV?d00001 diff --git a/how_memory_works/d b/how_memory_works/d new file mode 100755 index 0000000000000000000000000000000000000000..41988ac73baa04d8a20b395ab9d9971d83df8d61 GIT binary patch literal 24368 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 U!kvzbO!80j5ANj_0ZUf +#include +#include +#include +using namespace std; + +// motivation for using the heap is it is dynamic +int main () { + vector x(1000); + cout << "size of x = " << sizeof(x) << "\n"; //only 24 bytes instead of 4*1000!!! + int* p = new int(8); // allocate a new byte from the heap (naked pointer) + cout << *p << "\n"; + int y = *p; + cout << y << "\n"; + + delete p; // be careful though; the heap has to be cleared explicitly! memory leaks!!! + + unique_ptr q (new int(8)); // smart pointers that deletes themselves when destroyed + cout << *q << "\n"; + int z = *q; + cout << z << "\n"; +} \ No newline at end of file diff --git a/how_memory_works/passing_values.c b/how_memory_works/passing_values.c new file mode 100644 index 0000000..8d011b3 --- /dev/null +++ b/how_memory_works/passing_values.c @@ -0,0 +1,48 @@ +#include +using namespace std; + +// passing by value +// will not modify the value +void Foo(int x) { + cout << "FOO x = " << x << "\n"; + x += 1; + cout << "BAR x = " << x << "\n"; +} + +// passing by reference +// will modify the value if a reference is used +void Foo(int x, int& y) { + cout << "FOO x = " << x << "\n"; + cout << "FOO y = " << y << "\n"; + x += 1; + y += 2; + cout << "BAR x = " << x << "\n"; + cout << "BAR j = " << y << "\n"; +} + +// passing by pointer +// will modify the value if a pointer is used +void Foo(int x, int& y, int* z) { + cout << "FOO x = " << x << "\n"; + cout << "FOO y = " << y << "\n"; + cout << "FOO z = " << *z << "\n"; + x += 1; + y += 2; + *z += 3; // use the * operator when using pointers + cout << "BAR x = " << x << "\n"; + cout << "BAR j = " << y << "\n"; + cout << "BAR z = " << *z << "\n"; +} + +int main() { + int i = 10; + int j = 20; + int k = 30; + cout << "ORIG i = " << i << "\n"; + cout << "ORIG j = " << j << "\n"; + cout << "ORIG k = " << k << "\n"; + Foo(i, j, &k); // when passing by pointer, used & + cout << "AFTER i = " << i << "\n"; + cout << "AFTER j = " << j << "\n"; + cout << "AFTER k = " << k << "\n"; +} \ No newline at end of file diff --git a/how_memory_works/to_upper.c b/how_memory_works/to_upper.c new file mode 100644 index 0000000..4960104 --- /dev/null +++ b/how_memory_works/to_upper.c @@ -0,0 +1,19 @@ +#include +#include +using namespace std; + +void ToUpper(string& s) { + for (int i=0; i