【正文】
the marks by ,Note that both students and marks are passed to thisfunction by value, for this function does not need to modify thevalue stored in the pointer student. The same applies to marks.*/void ShowClass(char** students,int** marks){ int i。 marks[i]=marks[i+1]。 students[i+1]=temp。i++) { if ((strcmp(students[i],students[i+1]))=0) { temp=students[i]。j++) { for(i=j。 for(j=0。 int* temp1。 return。 return。 *marks=marks1。 free((void*)marksx)。 free((void*)marksx[j])。//free key student39。 marks1[i]=marksx[i+1]。ib。 marks1[i]=marksx[i]。ij。 marks1 = (int**) malloc((b+1)*sizeof(int*))。 }} b=i。 i++) { if (strcmp(studentsx[i],name) == 0) { found = 1。/* do we have the student yet ? */for(found = i = 0。 studentsx=*students。 name = ReadLine()。 printf(Enter Student Name to be deleted from Class List:\n)。 char* namex。 char** students1。 char** studentsx。}/* function DeleteStudent *//*This function prompts the user to enter a student nameto be precise form of the prompt is Enter Student Name to be deleted from Class List:Then this function reads the name from standard input.But it must be able to read any name of any size!! Thus you haveto allocate memory (using malloc()) to read the input into, and ifit is not big enough, must use realloc() to extend it. You are notallowed to allocate more than 10 bytes in one allocation or extendyour segment by more than 10 bytes in one call to realloc().Do not forget to deallocate the memory before exiting the function!Note that this part of the code is the same as in InsertStudent(),so you can either copy it or write a function that would do it for both.Once the function has the name to be deleted, it traverses the arraystudent to find out if it is there. If not, a warning message isdisplayed student xxx not in the class list and the function terminates.If it is found (say its is students[d]), a dynamic onedimensional array oneitem shorter than students is created and the strings from the array studentsare unhooked from the arrays students and hooked to the new array with theexception of the string to be deleted (don39。*students = students1。marks1[i+1] = NULL。if ((marks1[i] = (int*) malloc(5*sizeof(int))) == NULL) merror(9)。free((void*) name)。strcpy(students1[i],name)。if (students1 == NULL) merror(6)。 return。 break。 students1[i] != NULL。 return。 *students = students1。 marks1[0][0]=marks1[0][1]=marks1[0][2]=marks1[0][3]=marks1[0][4]=0。 if ((marks1 = (int**) malloc(2*sizeof(int*))) == NULL)merror(4)。 strcpy(students1[0],name)。if (students1 == NULL) { if ((students1 = (char**) malloc(2*sizeof(char*))) == NULL)merror(2)。fflush(stdout)。char *name。students1 = *students。char** students1。}/*endwhile*/return 0。else if (menu == 4) EditMarks(students,marks)。marks)。