gpt4 book ai didi

c++ - 争论的种类

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:24:05 27 4
gpt4 key购买 nike

我有以下代码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int comp(const void *a, const void *b){
char *const *aa=a;
char *const *bb=b;
return strcmp(*aa,*bb):


}
int main(int argc,char **argv){

int i;
qsort(argv+1,argc-1,sizeof *argv,comp);
for (i=1;i<argc;i++)
printf("i: %d==> '%s'\n",i,argv[i]);
return 0;


}

但是这里有错误

Error   1   error C2440: 'initializing' : cannot convert from 'const void *' to 'char *const *' c:\users\student\documents\visual studio 2008\projects\sort_argv\sort_argv\sort_argv.cpp    5   sort_argv
Error 2 error C2440: 'initializing' : cannot convert from 'const void *' to 'char *const *' c:\users\student\documents\visual studio 2008\projects\sort_argv\sort_argv\sort_argv.cpp 6 sort_argv

错误 3 错误 C2143:语法错误:缺少“;”在“:”之前

c:\users\student\documents\visual studio 2008\projects\sort_argv\sort_argv\sort_argv.cpp    7   sort_argv

错误 4 错误 C2143:语法错误:缺少“;”在“:”之前

c:\users\student\documents\visual studio 2008\projects\sort_argv\sort_argv\sort_argv.cpp    7   sort_argv

请帮忙

最佳答案

那么,您使用的是 C 还是 C++?您有一个有效的 C 程序(减去拼写错误 : 而不是 ;)。但是您将其命名为“.cpp”,并且最初仅将问题标记为“C++”(现已修复)。如果您不另行说明,Visual Studio 的编译器会将“.cpp”文件编译为 C++。并且您的程序不是有效的 C++。

在 C++ 中,您将使用 std::sort,而不是 qsort。它有一个不同的接口(interface),并且不需要 const void*。然后你的问题就会消失。

关于c++ - 争论的种类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3707415/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com