Raw Pointers and new and delete operators
Raw pointers in C++ are low-level constructs that directly hold a memory address. They can be used for manually allocating memory, creating dynamic arrays, and passing values efficiently, among other things.
new Operator
The new operator is used to allocate memory on the heap. The memory allocated using new remains available until you explicitly deallocate it using the corresponding delete operator.
Here's an example of using the new operator:
int* ptr = new int; // Dynamically allocates an int on the heap
*ptr = 42; // Assigns the value 42 to the allocated int
delete Operator
The delete operator is used to deallocate memory that has been allocated using new. After memory is deallocated, it's available to be reallocated for other purposes. Failing to properly deallocate memory can lead to memory leaks.
Here's an example of using the delete operator:
int* ptr = new int; // Dynamically allocates an int on the heap
*ptr = 42; // Assigns the value 42 to the allocated int
delete ptr; // Deallocates the memory assigned to ptr
new[] and delete[] Operators
The new[] and delete[] operators are used for allocating and deallocating memory for an array of objects. The syntax for new[] and delete[] is very similar to that of new and delete.
Here's an example of using the new[] and delete[] operators:
int n = 10;
int* arr =
new int[n]; // Dynamically allocates an array of 10 integers on the heap
// Set some values in the array
for (int i = 0; i < n; i++) {
arr[i] = i;
}
delete[] arr; // Deallocates the memory assigned to the array
In summary, raw pointers, and new and delete operators allow manual memory management in C++, providing control over allocation and deallocation. Make sure to always deallocate memory allocated with new or new[], to avoid memory leaks in your programs.