【发布时间】:2014-10-09 18:07:26
【问题描述】:
我正在尝试使用 qsort 对字符指针数组进行排序,并在编译时不断出现分段错误。我将发布我的 qsort 调用和比较函数的代码,任何帮助将不胜感激。
//count declaration
size_t count = (sizeof (strPtrsQsort)/sizeof (*strPtrsQsort));
//function call
qsort ((char *)ptr, size, sizeof(char), compare);
//compare function
int compare (const void *a, const void *b)
{
const char **ia = (const char **)a;
const char **ib = (const char **)b;
return strcmp (*ia, *ib);
}
【问题讨论】:
-
什么是
count,什么是strPtrsQsort,它们是否存在于您发布的代码sn-p 中?它们在qsort的任何地方都没有使用。 -
为什么在 C++ 中使用 C 字符串、原始数组和 C 的
qsort?使用std::vector<std::string>和std::sort。 -
如果你试图对一个指针数组进行排序,为什么数组元素大小被传递给
qsort为sizeof(char)???ptr是如何声明的?为什么在传递给qsort之前将其转换为char *?