定义了结构体如下:
typedef struct tagMYDATA
{
char _buf1[10];
char _buf2[10];
}MYDATA, *pMYDATA;
比较:
int cmp(const void* a, const void* b)
{
return strcmp((*(pMYDATA)a)._buf1, (*(pMYDATA)b)._buf1);
}
int main()
{
int _n = 10;
pMYDATA* _data = NULL;
_data = (pMYDATA*)malloc(sizeof(MYDATA)*_n);
//初始化动态数组
qsort(_data, _n, sizeof(_data[0]), cmp);
for(i=0;i<rowcount;i++)
printf("%s\n", _data[i]->_buf1);
return 0;
}
基本的代码就是这样,但是输出的时候是乱码,请各位看看是怎么回事
代码是纯c的,编译通过能运行,不排序输出数组每个元素的字符串正常。
以上您的代码没有任何问题。问题出在我这样分配不对,修改后正确了。
非常感谢这么晚了,帮我解答问题。