C++ help? Dynamic Arrays In this experiment you will explain the output of a pro
ID: 3560192 • Letter: C
Question
C++ help? Dynamic Arrays
In this experiment you will explain the output of a program that uses static and dynamic arrays.
#include
using namespace std;
int main()
{
int static_Array[5];
int *dynamic_Array = new int[5];
int i;
for(i = 0; i < 5; i++)
{
static_Array[i] = i;
dynamic_Array[i] = i*2;
}
for (i = 0; i < 5; i++)
{
cout << "static_Array[" << i << "] = " << static_Array[i] << endl;
cout << "dynamic_Array[" << i << "] = " << dynamic_Array[i] << endl;
}
return 0;
}
Question 1:Please explain each line of code and the output.
#include
using namespace std;
int main()
{
int static_Array[5];
int *dynamic_Array;
dynamic_Array = new int[5];
int i;
for(i = 0; i < 5; i++)
{
static_Array[i] = i;
dynamic_Array[i] = i*2;
}
for (i = 0; i < 5; i++)
{
cout << "static_Array[" << i << "] = " << static_Array[i] << endl;
cout << "dynamic_Array[" << i << "] = " << dynamic_Array[i] << endl;
}
cout << endl << endl << endl;
static_Array = dynamic_Array;
for (i = 0; i < 5; i++)
{
cout << "static_Array[" << i << "] = " << static_Array[i] << endl;
cout << "dynamic_Array[" << i << "] = " << dynamic_Array[i] << endl;
}
return 0;
}
Question 2: Please list and explain any error message(s).
#include
using namespace std;
int main()
{
int static_Array[5];
int *dynamic_Array;
dynamic_Array = new int[5];
int i;
for(i = 0; i < 5; i++)
{
static_Array[i] = i;
dynamic_Array[i] = i*2;
}
for (i = 0; i < 5; i++)
{
cout << "static_Array[" << i << "] = " << static_Array[i] << endl;
cout << "dynamic_Array[" << i << "] = " << dynamic_Array[i] << endl;
}
cout << endl << endl << endl;
dynamic_Array = static_Array;
for (i=0; i<5; i++)
{
cout << "static_Array[" << i << "] = " << static_Array[i] << endl;
cout << "dynamic_Array[" << i << "] = " << dynamic_Array[i] << endl;
}
return 0;
}
Question 3: Why did the program in Step 3 compile and run without any errors, and the program in Step 2 did not? Explain your answer.
#include
using namespace std;
int main()
{
int *static_Array = new int[5];
int *dynamic_Array;
dynamic_Array = new int[5];
int i;
for(i = 0; i < 5; i++)
{
static_Array[i] = i;
dynamic_Array[i] = i*2;
}
for (i = 0; i < 5; i++)
{
cout << "static_Array[" << i << "] = " << static_Array[i] << endl;
cout << "dynamic_Array[" << i << "] = " << dynamic_Array[i] << endl;
}
cout << endl << endl << endl;
static_Array = dynamic_Array;
for (i = 0; i < 5; i++)
{
cout << "static_Array[" << i << "] = " << static_Array[i] << endl;
cout << "dynamic_Array[" << i << "] = " << dynamic_Array[i] << endl;
}
return 0;
}
Question 4:Compare the programs that were presented in Steps 1, 2, 3 and 4. What are your observations?
Explanation / Answer
#include<iostream> // standard header file include for input output.
using namespace std; // to access cout .
int main() // indicates start of program..
{ // function opening brace.
int static_Array[5]; // declaration of static array of length 5.
int *dynamic_Array; // declaration of pointer to dynamic arry.
dynamic_Array = new int[5]; // create a dynamic array of length 5.
int i; // variable.
for(i = 0; i < 5; i++) // for loop.
{
static_Array[i] = i; // assign value to static array at index i.
dynamic_Array[i] = i*2; // assign value to dynamic array at index i.
}
for (i = 0; i < 5; i++) // for loop
{
cout << "static_Array[" << i << "] = " << static_Array[i] << endl; // print value of static array at index i
cout << "dynamic_Array[" << i << "] = " << dynamic_Array[i] << endl; // print value of dynamic array at index i
}
return 0; // return 0 means program completed successfully.
}
/* OUTPUT
static_Array[0] = 0
dynamic_Array[0] = 0
static_Array[1] = 1
dynamic_Array[1] = 2
static_Array[2] = 2
dynamic_Array[2] = 4
static_Array[3] = 3
dynamic_Array[3] = 6
static_Array[4] = 4
dynamic_Array[4] = 8
*/
Question 1:Please explain each line of code and the output.
#include<iostream>
using namespace std;
int main()
{
int static_Array[5];
int *dynamic_Array;
dynamic_Array = new int[5];
int i;
for(i = 0; i < 5; i++)
{
static_Array[i] = i;
dynamic_Array[i] = i*2;
}
for (i = 0; i < 5; i++)
{
cout << "static_Array[" << i << "] = " << static_Array[i] << endl;
cout << "dynamic_Array[" << i << "] = " << dynamic_Array[i] << endl;
}
cout << endl << endl << endl;
static_Array = dynamic_Array; // ERROR lies in this because if incompatible types.
for (i = 0; i < 5; i++)
{
cout << "static_Array[" << i << "] = " << static_Array[i] << endl;
cout << "dynamic_Array[" << i << "] = " << dynamic_Array[i] << endl;
}
return 0;
}
Question 2: Please list and explain any error message(s).
// ERROR : error: incompatible types in assignment of int* to int[5];
#include<iostream>
using namespace std;
int main()
{
int static_Array[5];
int *dynamic_Array;
dynamic_Array = new int[5];
int i;
for(i = 0; i < 5; i++)
{
static_Array[i] = i;
dynamic_Array[i] = i*2;
}
for (i = 0; i < 5; i++)
{
cout << "static_Array[" << i << "] = " << static_Array[i] << endl;
cout << "dynamic_Array[" << i << "] = " << dynamic_Array[i] << endl;
}
cout << endl << endl << endl;
dynamic_Array = static_Array;
for (i=0; i<5; i++)
{
cout << "static_Array[" << i << "] = " << static_Array[i] << endl;
cout << "dynamic_Array[" << i << "] = " << dynamic_Array[i] << endl;
}
return 0;
}
Question 3: Why did the program in Step 3 compile and run without any errors, and the program in Step 2 did not? Explain your answer.
// in Step 3, dynamic_Array is pointer which can take address of any array thus static_Array represents address dynamic_Array hold its address. while reverse
// is not possible because static_Array represents an array with fixed length of 5.
#include<iostream>
using namespace std;
int main()
{
int *static_Array = new int[5];
int *dynamic_Array;
dynamic_Array = new int[5];
int i;
for(i = 0; i < 5; i++)
{
static_Array[i] = i;
dynamic_Array[i] = i*2;
}
for (i = 0; i < 5; i++)
{
cout << "static_Array[" << i << "] = " << static_Array[i] << endl;
cout << "dynamic_Array[" << i << "] = " << dynamic_Array[i] << endl;
}
cout << endl << endl << endl;
static_Array = dynamic_Array;
for (i = 0; i < 5; i++)
{
cout << "static_Array[" << i << "] = " << static_Array[i] << endl;
cout << "dynamic_Array[" << i << "] = " << dynamic_Array[i] << endl;
}
return 0;
}
Question 4:Compare the programs that were presented in Steps 1, 2, 3 and 4. What are your observations?
Step1: program compiled and ran correctly.
Step2: program has errors. didnt compile. because of incompatible types.
Step3: Program compiled and ran correctly.
Step4: Program compiled and ran correctly. since both static and dynamic are pointers assignment workd fine but with memory leakages.
but in all programs allocated memory didnot de-allocated. thus leading to memory leakages.
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.