25 lines
1,005 B
Markdown
25 lines
1,005 B
Markdown
## Linux compilation
|
|
|
|
> mkdir build
|
|
> cd build
|
|
> cmake -DCMAKE_BUILD_TYPE=Debug ..
|
|
> make
|
|
|
|
## Valgrind usage
|
|
|
|
> valgrind valgrind_params path/to/binary binary_params, eg:
|
|
> valgrind --leak-check=full ./List
|
|
> or full output using command: valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes --verbose --log-file=valgrind-out.txt ./List
|
|
|
|
## Resource exapmle
|
|
|
|
Take a look at `list.cpp` file, where simple (and buggy) single-linked list is implemented.
|
|
|
|
* `pushFront` method adds a new `Node` at the begining of the list.
|
|
* `findByValue` method iterates over the list and returns the first Node with matching `value` or `nullptr`.
|
|
|
|
1. Compile and run List application
|
|
2. Fix memory leaks without introducing smart pointers
|
|
3. Fix memory leaks with smart pointers. What kind of pointers needs to be applied and why?
|
|
4. Add function to add a node at the end of the list (try to do this with time complexity O(1))
|
|
5. Add function to delete node with provided value.
|