宇哥受命于天 2015-09-11 03:31 采纳率: 0%
浏览 2441

关于字符串数组qsort排序中问题

我的IDE是codeblocks,内置编译器是gcc。win7 64bit。

如下:

 #include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <exception>
#include <algorithm>

using namespace std;

int cmp(const void* a,const void* b)
{
    return strcmp(*(char **)a,*(char**)b);
}

int main()
{
    char ss[5][20] = {"hello","world","a","b","aa"};

    char** s = (char **)new char[5];
    for(int i=0;i <5;++ i)
    {
        s[i] = new char[20];
        strcpy(s[i],ss[i]);
    }

    puts("before sort:");
    for(int i=0;i <5;++ i) printf("%s\n",s[i]);

    qsort(s,5,sizeof(char *),cmp);
      puts("after sort:");
    for(int i=0;i <5;++ i) printf("%s\n",s[i]);


    return 0;
}

上面一旦使用了char**开辟字符串数组就必须用sizeof(char )和(char **),但是用char[][]初始化之后的数组又必须用sizeof(s[0])和(char *),这里面的原因是什么?char[][]不是按照数组名编译器当成指针来用的原则吗?

  • 写回答

2条回答 默认 最新

  • Robot-S 2015-09-11 03:34
    关注

    字符串数组qsort排序......
    答案就在这里:字符串数组qsort排序
    ----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?

    评论

报告相同问题?

悬赏问题

  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记