当我知道每个元素的大小时,如何从void指针到数组获取一个项目?

Sha*_*Hsu 2 c void-pointers

当我想为教育目的编写自己的快速入口时.这就是我得到的:

qsort(void* array, int count, int size, int(*compare)(const void*, const void*));
Run Code Online (Sandbox Code Playgroud)

我有数组中每个元素的大小,以及指向数组中第一个元素的指针.如何获取该数组中的每个元素?

Sto*_*ica 6

如果使用sizeof运算符生成大小,则它是倍数sizeof(char)(根据定义为1).所以把它void*变成一个char*,然后一次移动size"角色".

(((char*)array) + i*size)
Run Code Online (Sandbox Code Playgroud)