二维数组如何做函数参数?
二维数组如何做函数参数?比如说我有个数组m[500000][4],要对m[][3]进行排序,如何将这个数组传给一个快速排序的函数,直接对这个数组排序?
[解决办法]
(int*)m就可以吧。。
[解决办法]
传地址过去
在排序函数里也用指针操作
[解决办法]
那就要把你数组的手地址传过去了 参数写 m[][4]
[解决办法]
m[500000][4]如何做参数?是不是这个意思阿?
这样传就可以了
a(int (*p)[4]){
}
int main()
{
int m[500000][4];
int (*p)[4]
p = m;
a(p);
}
[解决办法]
或者把 a(p)改为a(m) 就更简洁
[解决办法]
没什么关系.实参用a,行参用数组指针.
要规定是排三列,那for循环中控制下就可以了
[解决办法]
用指针传
[解决办法]
引用
-------------
(int*)m就可以吧!
---------------
传首地址,用(int*)m操作
[解决办法]
int cmpdata(const void *p, const void *q){
const yourtype *pp=(const yourtype *)p;
const yourtype *qq=(const yourtype *)q;
if(pp[3]<qq[3]){
return -1;
}else if(pp[3]>qq[3]){
return 1;
}
return 0;
}
qsort(m, 500000,sizeof(m[0]),cmpdata);