Моя программа содержит записи, которые включают имя, фамилию и оценку. Мне нужно написать функцию, которая позволяет пользователю вводить фамилию и удаляет любую запись с этой фамилией. Я могу использовать только указатели и простые функции выделения памяти. Например, мои записи могут выглядеть примерно так:
Smith, Will, 63
Crews, Terry, 30
Brady, Tom, 92
Формат здесь - lastName, Имя, оценка. У меня есть два двумерных массива для хранения всех имен и массив с плавающей запятой для хранения результатов. Если пользователь хочет удалить какую-либо запись с фамилией «Экипаж», моей программе нужно будет удалить все имя и счет, связанный с этой фамилией. Поэтому мой список записей будет выглядеть так:
Smith, Will, 63
Brady, Tom, 92
Вот то, что у меня сейчас есть.
void delete_record(int size, char** firstName, char** lastName, float* score)
{
int x;
char *target = (char *)malloc(20 * sizeof(char));
printf("Enter a last name. \n");
printf("Any students with that last name will have their record deleted. \n");
scanf("%s", target);
for(x=0;x<size;x++)
{
if(strcmp(target, lastName + (x*15)) == 0)
{
free(firstName);
free(lastName);
free(score);
}
}
}
Правка для отображения определяемых массивов
char **lastName = (char **)malloc(numOfRecords * sizeof(char));
numOfRecords предоставляется пользователем для определения размера списка.