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

Your third deliverable is a Cprogram (MyCommand3.c) that: The argumentArray is d

ID: 3585827 • Letter: Y

Question

Your third deliverable is a Cprogram (MyCommand3.c) that: The argumentArray is defined as follows: char **argument rray = NULL ; Allocate a place holder for each element in the argumentArray: argumentArray= Allocate the right size for each argument (based on the user input): argumentArraylargIndex) = (char * ) malloc( (strlen (argv [argIndex]) * sizeof (char)); Copy the values typed by the user to the argumentArray (Figure 4) - (char**) malloc( (arge+1) * sizeof (char*)); - + 1) argumentArray NULL Figure 4- argumentArray populated after running: MyCommand3 UMass RPI SUNY Harvard - Print the arguments (see example in Figure 5) $MyCommand3 UMass RPI SUNY Harvard argumentArray[]: MyCommand3 argumentArray[1]: UMass argumentArray[21: RPI argumentArray[3] SUNY argumentArray[4]: Harvard $MyCommand3 UMass RPI SUNY Harvard Rochester MIT argumentArray[e]: MyCommand3 argumentArrav11: UMass argumentArray[2]: RPI argumentArray[31: SUNY argumentArray[41: Harvard argumentArray[5] Rochester argumentArray[61: MIT Figure 5- Output of MyCommand3 Important: make sure to free the space you allocate before vour program exits

Explanation / Answer

#include <stdio.h>

int main(int argc, char * argv []) {

int argIndex;

char **argumentArray = NULL;

argumentArray = (char **) malloc((argc+1) * sizeof(char *));

for(argIndex=0; argIndex<argc; argIndex++) {

argumentArray[argIndex] = (char *)malloc((strlen(argv[argIndex]) + 1) * sizeof(char));

strcpy(argumentArray[argIndex], argv[argIndex]);

}

// make last element NULL

argumentArray[argc] = NULL;

for(argIndex=0; argIndex<argc; argIndex++) {

// print values

printf("argumentArray[%d]: %s ",argIndex, argumentArray[argIndex]);

// free inner array

free(argumentArray[argIndex]);

}

// free outer array

free(argumentArray);

return 0;

}