C语言写一个动态通讯录
作者:野牛程序员:2023-08-23 12:09:53C语言阅读 2613
以下是一个简单的C语言动态通讯录的示例代码,使用了结构体和动态内存分配来实现。
#include <stdio.h> #include <stdlib.h> #include <string.h> // 定义联系人结构体 struct Contact { char name[50]; char phone[20]; struct Contact *next; // 下一个联系人的指针 }; // 添加联系人 struct Contact* addContact(struct Contact *head, const char *name, const char *phone) { struct Contact *newContact = (struct Contact*)malloc(sizeof(struct Contact)); if (newContact == NULL) { printf("Memory allocation failed\\n"); return head; } strcpy(newContact->name, name); strcpy(newContact->phone, phone); newContact->next = head; return newContact; } // 显示所有联系人 void displayContacts(struct Contact *head) { printf("Contact List:\\n"); struct Contact *current = head; while (current != NULL) { printf("Name: %s, Phone: %s\\n", current->name, current->phone); current = current->next; } } // 释放内存 void freeContacts(struct Contact *head) { struct Contact *current = head; while (current != NULL) { struct Contact *temp = current; current = current->next; free(temp); } } int main() { struct Contact *contactList = NULL; // 添加联系人 contactList = addContact(contactList, "Alice", "123-456"); contactList = addContact(contactList, "Bob", "789-012"); contactList = addContact(contactList, "Charlie", "345-678"); // 显示联系人列表 displayContacts(contactList); // 释放内存 freeContacts(contactList); return 0; }
在这个示例中,使用了一个联系人的结构体,并使用了动态内存分配来创建联系人的节点。addContact
函数用于添加新的联系人到通讯录,displayContacts
函数用于显示所有联系人的信息,freeContacts
函数用于释放动态分配的内存。
请注意,这只是一个简单的示例,实际应用中可能需要添加更多功能,如查找联系人、编辑联系人信息等。同时,动态内存分配后需要记得释放以避免内存泄漏。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:C语言自定义类型(结构体+枚举+联合)
- 下一篇:C语言深度剖析数据在内存中的存储