Bird
Raised Fist0
C++programming~10 mins

new operator in C++ - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to allocate memory for an integer using the new operator.

C++
int* ptr = [1] int;
Drag options to blanks, or click blank then click option'
Anew
Bmalloc
Calloc
Dcreate
Attempts:
3 left
💡 Hint
Common Mistakes
Using malloc instead of new in C++.
Forgetting to use the new operator before the type.
2fill in blank
medium

Complete the code to allocate an array of 5 doubles using the new operator.

C++
double* arr = [1] double[5];
Drag options to blanks, or click blank then click option'
Anew
Bmalloc
Ccreate
Dalloc
Attempts:
3 left
💡 Hint
Common Mistakes
Using malloc which is a C function, not recommended in C++.
Forgetting the brackets for array allocation.
3fill in blank
hard

Fix the error in the code to correctly allocate a single float using new.

C++
float* fptr = [1] float();
Drag options to blanks, or click blank then click option'
Amalloc
Balloc
Ccreate
Dnew
Attempts:
3 left
💡 Hint
Common Mistakes
Using malloc which returns void* and requires casting.
Using incorrect keywords like create or alloc.
4fill in blank
hard

Fill both blanks to allocate and initialize an array of 3 integers with zeros using new.

C++
int* arr = [1] int[2];
Drag options to blanks, or click blank then click option'
Anew
B[3]{}
C()
D{}
Attempts:
3 left
💡 Hint
Common Mistakes
Using parentheses instead of brackets for arrays.
Forgetting to use new keyword.
5fill in blank
hard

Fill all three blanks to allocate an array of 4 chars and initialize them to zero using new.

C++
char* buffer = [1] char[2] [3];
Drag options to blanks, or click blank then click option'
Anew
B[4]
C()
D{}
Attempts:
3 left
💡 Hint
Common Mistakes
Using parentheses instead of braces for initialization.
Forgetting to use new or brackets.

Practice

(1/5)
1. What does the new operator do in C++?
easy
A. Allocates memory dynamically and returns a pointer to it
B. Deletes a variable from memory
C. Declares a normal variable on the stack
D. Copies data from one variable to another

Solution

  1. Step 1: Understand the purpose of new

    The new operator is used to allocate memory on the heap during program execution.
  2. Step 2: Identify what new returns

    It returns a pointer to the allocated memory so the program can use it.
  3. Final Answer:

    Allocates memory dynamically and returns a pointer to it -> Option A
  4. Quick Check:

    new = allocate memory [OK]
Hint: Remember: new creates memory and gives a pointer [OK]
Common Mistakes:
  • Confusing new with delete
  • Thinking new declares stack variables
  • Assuming new copies data
2. Which of the following is the correct syntax to allocate an integer using new?
easy
A. int p = new int;
B. int p = new int();
C. int *p = new int[];
D. int *p = new int;

Solution

  1. Step 1: Check pointer declaration

    Using new returns a pointer, so the variable must be a pointer type like int *.
  2. Step 2: Verify syntax correctness

    int *p = new int; correctly allocates an int and assigns its address to p.
  3. Final Answer:

    int *p = new int; -> Option D
  4. Quick Check:

    Pointer = new type [OK]
Hint: new returns pointer, so use pointer variable [OK]
Common Mistakes:
  • Declaring variable without pointer
  • Using parentheses incorrectly
  • Assigning new to non-pointer variable
3. What is the output of this code?
int *arr = new int[3]{10, 20, 30};
std::cout << arr[1] << std::endl;
delete[] arr;
medium
A. 20
B. 10
C. 30
D. Runtime error

Solution

  1. Step 1: Understand array allocation with new

    The code creates an array of 3 integers with values 10, 20, 30.
  2. Step 2: Access the second element

    Array indexing starts at 0, so arr[1] is the second element, which is 20.
  3. Final Answer:

    20 -> Option A
  4. Quick Check:

    arr[1] = 20 [OK]
Hint: Remember array index starts at 0 [OK]
Common Mistakes:
  • Confusing index 1 with index 0
  • Forgetting to use delete[] for arrays
  • Expecting runtime error without cause
4. Identify the error in this code snippet:
int *p = new int;
*p = 5;
delete p;
delete p;
medium
A. Incorrect use of new operator
B. Missing initialization of pointer
C. Double deletion of the same pointer
D. No error, code is correct

Solution

  1. Step 1: Analyze pointer allocation and deletion

    Pointer p is allocated memory and deleted once correctly.
  2. Step 2: Check for repeated delete

    Deleting p a second time causes undefined behavior (double deletion error).
  3. Final Answer:

    Double deletion of the same pointer -> Option C
  4. Quick Check:

    delete twice = error [OK]
Hint: Delete pointer only once to avoid errors [OK]
Common Mistakes:
  • Deleting pointer twice
  • Not deleting allocated memory
  • Confusing delete and delete[]
5. You want to create a dynamic 2D array of integers with 3 rows and 2 columns using new. Which code correctly allocates and deallocates this array?
hard
A. int *arr = new int[3*2]; // use arr delete arr;
B. int **arr = new int*[3]; for(int i=0; i<3; i++) arr[i] = new int[2]; // use arr for(int i=0; i<3; i++) delete[] arr[i]; delete[] arr;
C. int **arr = new int[3][2]; // use arr delete[] arr;
D. int arr[3][2]; // use arr // no delete needed

Solution

  1. Step 1: Allocate 2D array dynamically

    int **arr = new int*[3]; for(int i=0; i<3; i++) arr[i] = new int[2]; // use arr for(int i=0; i<3; i++) delete[] arr[i]; delete[] arr; correctly creates an array of pointers for rows, then allocates each row as an array of ints.
  2. Step 2: Properly deallocate memory

    Each row is deleted with delete[], then the array of pointers is deleted with delete[].
  3. Final Answer:

    Uses an array of pointers, allocating each row separately -> Option B
  4. Quick Check:

    Nested new and delete[] for 2D arrays [OK]
Hint: Use nested new and delete[] for 2D arrays [OK]
Common Mistakes:
  • Using delete instead of delete[] for arrays
  • Not deleting all allocated rows
  • Trying to allocate 2D array with single new incorrectly
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard