Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

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.

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote