生成一个使用多重数组实现对象的增删查改排的C语言代码
时间: 2024-05-28 09:08:53 浏览: 13
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_SIZE 100
typedef struct {
char name[20];
int age;
} Person;
typedef struct {
Person* data[MAX_SIZE];
int size;
} PersonList;
void initList(PersonList* list) {
list->size = 0;
}
void addPerson(PersonList* list, Person* person) {
if (list->size < MAX_SIZE) {
list->data[list->size++] = person;
}
}
Person* getPerson(PersonList* list, int index) {
if (index >= 0 && index < list->size) {
return list->data[index];
}
return NULL;
}
void deletePerson(PersonList* list, int index) {
if (index >= 0 && index < list->size) {
free(list->data[index]);
for (int i = index; i < list->size - 1; i++) {
list->data[i] = list->data[i + 1];
}
list->size--;
}
}
void updatePerson(PersonList* list, int index, Person* person) {
if (index >= 0 && index < list->size) {
free(list->data[index]);
list->data[index] = person;
}
}
void printPerson(Person* person) {
printf("Name: %s, Age: %d\n", person->name, person->age);
}
void printList(PersonList* list) {
for (int i = 0; i < list->size; i++) {
printPerson(list->data[i]);
}
}
int main() {
PersonList list;
initList(&list);
Person* person1 = (Person*)malloc(sizeof(Person));
strcpy(person1->name, "Alice");
person1->age = 20;
addPerson(&list, person1);
Person* person2 = (Person*)malloc(sizeof(Person));
strcpy(person2->name, "Bob");
person2->age = 25;
addPerson(&list, person2);
printf("List:\n");
printList(&list);
printf("Get person at index 0:\n");
Person* p = getPerson(&list, 0);
if (p != NULL) {
printPerson(p);
}
printf("Delete person at index 1:\n");
deletePerson(&list, 1);
printList(&list);
printf("Update person at index 0:\n");
Person* person3 = (Person*)malloc(sizeof(Person));
strcpy(person3->name, "Charlie");
person3->age = 30;
updatePerson(&list, 0, person3);
printList(&list);
return 0;
}
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)