When should I use the new keyword in C++?

Method 1 (using new) Allocates memory for the object on the free store (This is frequently the same thing as the heap) Requires you to explicitly delete your object later. (If you don’t delete it, you could create a memory leak) Memory stays allocated until you delete it. (i.e. you could return an object that you created using new) The example in the question will leak memory unless … Read more

Static array vs. dynamic array in C++

Local arrays are created on the stack, and have automatic storage duration — you don’t need to manually manage memory, but they get destroyed when the function they’re in ends. They necessarily have a fixed size: Arrays created with operator new[] have dynamic storage duration and are stored on the heap (technically the “free store”). They can … Read more

Division in C++

In the expression 1 / 6, both numbers are integers. This means that this division will perform integer division, which results in 0. To do a double division, one number has to be a double: 1.0 / 6 for example.

std::out_of_range error?

I’m dealing with a file with a linked list of lines with each node looking like this: and I’m writing a function that adds spaces at the beginning of the lines found in the variable text, by calling functions like linelist_ptr->text.insert(0,1,’\t’); The program compiles, but when I run it I get this error: Any ideas?

What is activation record in the context of C and C++?

An activation record is another name for Stack Frame. It’s the data structure that composes a call stack. It is generally composed of: Locals to the callee Return address to the caller Parameters of the callee The previous stack pointer (SP) value The Call Stack is thus composed of any number of activation records that … Read more

How to write C++ getters and setters

There are two distinct forms of “properties” that turn up in the standard library, which I will categorise as “Identity oriented” and “Value oriented”. Which you choose depends on how the system should interact with Foo. Neither is “more correct”. Identity oriented Here we return a reference to the underlying X member, which allows both sides of the call site … Read more