Concept explainers
Purpose of “new” operator:
The main purpose of the “new” operator is to dynamically allocate memory. Dynamic memory allocation is process where an individual chunk of memory space is allocated by the compiler that is sufficient for the storage of variables.
Purpose of “delete” operator:
The purpose of “delete” operator is to clear or free the memory that was allocated using a “new” operator. The allocated memory gets de-allocated when “delete” operator is used.
Example:
//null pointer declaration
int *myptr = nullptr;
//dynamic allocation of memory
myptr = new int;
//free the memory allocated
delete myptr;
//assign the value to be null
myptr= nullptr;
Want to see the full answer?
Check out a sample textbook solutionChapter 9 Solutions
Starting Out With C++: From Control Structures Through Objects, Brief Version Plus Mylab Programming With Pearson Etext -- Access Card Package (9th Edition)
- 1)Answer the question with the correct option A) Which of the following assigns to the pointer p to the address of value? options are given p = value; *p = &value; p = &value; p = &value; B) What is the output of the following code fragment? Options are given below the code: int v1=2, v2=-1, *p1, *p2; p1 = &v1; p2 = &v2; p2 = p1; cout << *p2 << endl; 2 -2 1 -1 C) Which of the following statements correctly prints out the value that is in the memory address that the pointer p is pointing to? cout << int* p; cout << p; cout << *p; cout << &p;arrow_forwardGiven the declaration below, if array aData[][] was associated to the memory location 1010 (in decimal), what is the value/address (in decimal) equivalent to aData[5] ? double aData[6][4]; Note that sizeof(double) results to 8, meaning 8 bytes.arrow_forwardWrite a C program that uses the following: a main() to read two integer values from the user, val1 and val2, and prints the returned value from swap().a swap() that uses call by reference (takes the addresses into pointers) to swap values, and prints their values after the swap "num1 = # and num2 = #". This function returns the largest of the two values. If these are equal, it returns their sum.arrow_forward
- Write a short C program that declares and initializes (to any value you like) adouble, an int, and a char. Next declare and initialize a pointer to each of thethree variables. Your program should then print the address of, and value storedin, and the memory size (in bytes) of each of the six variables.Use the “%p” formatting specifier to print addresses in hexadecimal. You shouldsee addresses that look something like this: "0xbfe55918". The initial characters"0x" tell you that hexadecimal notation is being used; the remainder of the digitsgive the address itself. Use proper formatting specifiers for char, int and double.Use the sizeof operator to determine the memory size allocated for each variable.Sample output from your program:The address of char ___ is 0x_______The address of int ___ is 0x_______The address of double ___ is 0x_______The address of char* ___ is 0x_______The address of int* ___ is 0x_______The address of double* ___ is 0x_______The value of char ___ is _______The…arrow_forwardWrite a short C program that declares and initializes (to any value you like) adouble, an int, and a char. Next declare and initialize a pointer to each ofthe three variables. Your program should then print the address of, and valuestored in, and the memory size (in bytes) of each of the six variables.Use the “0x%x” formatting specifier to print addresses in hexadecimal. Youshould see addresses that look something like this: "0xbfe55918". The initialcharacters "0x" tell you that hexadecimal notation is being used; the remainderof the digits give the address itself.Use the sizeof operator to determine the memory size allocated for eachvariable.*/arrow_forwardWrite a block of code that uses a dynamic allocated array named Array to (1) Load ten integers from the user into the memory, (2) Find the number of negative integers in the array, and (3) Print a message with the number of negatives. Whenever no numbers are negative print an additional message "No negatives!" (Assume all libraries are included)arrow_forward
- Assume that pointer ptr is a pointer to a double, and has initial value of 0xfc0f. What is the value of ptr after the pointer has been decremented? (assume a 4 byte double) Group of answer choices 0xfb0e 0xfc13 0xfc0b 0xfc0earrow_forwardDeclare a character field, assign values to it (e.g. Next, declare a pointer to this field and write the actual address it points to on the screen (eg printf (“% p”, pointer);). Then change the address value (add a unit). Enter a value for this address and return the string to the screen. What has happened? Finally, change the address value to a very high value and try writing something again. What happens? The program should fall. Explain why. Explan all codes.thanksarrow_forward// Program 4.4.1#include <iostream>using namespace std;int main (){ int var = 20; // actual variable declaration. int *ip; // pointer variable ip = &var; // store address of var in pointer variable cout << "Value of var variable: "; // print the variable value cout << var << endl<<endl; cout << "Address stored in ip variable: "; // print the address stored in ip pointer variable cout << ip << endl<<endl; cout << "Value of *ip variable: "; // access the value at the address available in pointer cout << *ip << endl; return 0;} TASK 1. Explain in details what the program does? 2. What is the output.arrow_forward
- 4) Answer the question in C++ A) What is wrong with the following code segment? enum CarType {GM, FORD, BMW}; int main() { CartType = BMW; return 0; } B) Assume that the addresses of x and y is 0x61feb8 and 0x61feb0, respectively. What will be the values of x, y, p, and q, respectively, when the following code runs successfully? int main() { int x; double y; int* p = &x; double* q = &y; *p = 3; *q = 3.14; increaseByOne(p, q); cout << x << " " << y << endl; cout << p << " " << q << endl; return 0; }void increaseByOne(int*& p1, double* q1){ (*p1)++; (*q1)++; p1++; q1++;} The four value:arrow_forwardIn c++ you have a data in a text file, the data consists of a chatacter separated by a comma then an integer also separate md by a comma then another integer Example A,11,1 B,13,2 C,14,4 D,15,7 E,40,1 F,50,1 How will you read and store the data in a vector such that the character will be stored in vector char, and the two integers will be stored in vector x and y respectively.arrow_forwardConsider the following code: int main() { char *s = strdup("This is a test"); char *d = " "; while (s) { char *token = strsep(&s, d); puts(token); } free(s); return 0;} Which of the following causes an error or segmentation fault? A. free is called on a pointer that was not malloc'ed B. strsep must be called with s instead of &s C. The while loop is an infinite loop D. The string s points to is in read-only memory E. Something elsearrow_forward
- C++ Programming: From Problem Analysis to Program...Computer ScienceISBN:9781337102087Author:D. S. MalikPublisher:Cengage Learning