gpt4 book ai didi

c - 使用 void 指针排序算法,我该怎么做?

转载 作者:行者123 更新时间:2023-11-30 21:27:20 25 4
gpt4 key购买 nike

我是这个论坛的新人,所以..让我们解释一下我需要做什么。首先,这是一项家庭作业,我必须为此制定一个时间表。但这不是一个正常的调度,也不是一个简单的调度,我只需要一个void指针变量来完成,来存储所有的内存。

因此,我需要的一切,我需要考虑到我只能将变量保存在 void 指针内,之后我需要使用指针算术来访问 void 指针内的所有内容。而且我只能创建指针变量,而这个只能存储内存地址。

所以我决定只放置两个变量,名为 name 和 number。只是为了让这件事更容易做到。并将我的 void 指针命名为“pbuffer”。之后,我创建了两个结构,一个用于保存所有变量,另一个用于保存名称和编号。

好吧,我明白了,我完成了作业,但是现在,我需要实现这个,放入排序算法,如冒泡排序、选择排序、归并排序、快速排序和插入排序。

此时,我不知道我需要做什么!例如:如何按字母顺序对名称进行排序?

my code in github

最佳答案

按照字母顺序(或字典顺序),需要使用strcmp字符串函数。

回到主题:使用 void 指针背后的想法是在 C 中创建通用代码。

假设您有一个 void * 类型的数组,您可以通过简单的类型转换为其赋值。但是,如果要分配一个 int 值,则需要为其分配一个 int 指针:

int x = 3;
void *a = (int*) &x;

在 String 中执行此操作甚至更容易,因为它的开头是指向 char 的指针:

char s[] = "Hello world";
void *a = (char*) s;

当你执行strcmp(s1, s2)时,你会得到返回:

  • -1,如果按字典顺序 s1 在 s2 之后;
  • 1,如果按字典顺序 s2 在 s1 之后;
  • 0,如果 s1 和 s2 是相同的字符串。

希望能帮助您入门!

关于c - 使用 void 指针排序算法,我该怎么做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52618140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com