【发布时间】:2021-02-19 20:46:39
【问题描述】:
我的代码还是有问题。
if (argc > 0) {
int route (argc);//[argc+1]
((char*) route)[0] = 1;
((char*) route)[1] = 2;//131
((char*) route)[2] = 3 + argc * 4;
((char*) route)[3] = 4;
for (int i = 0; i < argc; i++) {
route = inet_addr(argv[i]);
}
if (setsockopt(_socket.native_handle(), IPPROTO_IP, IP_OPTIONS, route, (argc + 1) * 4) < 0) {
perror("can't set socket option");
}
}
这是其中的一部分,不断收到此错误 C2664: cannot convert parameter 4 from 'int' to 'const char *'
【问题讨论】:
-
你的意思是指
argv而不是argc吗?argc实际上是一个整数值,用于指定main()函数的现有字符串参数的数量。 -
Anton,这段代码有很多问题,我建议你找一些BEGINNER教程。 (对不起)
-
@πάνταῥεῖ 好吧,我是这方面的业余爱好者,所以我有点困惑。如果我在那里引用 argv (argv+1) - 它给了我另一个错误,我应该引用 ro 算术类型和 bla bla bla
-
@Amit haha 确定!我知道..没有人能指出这些问题在哪里
-
@AntonYatsushko “没有人能指出这些问题在哪里” 好吧,您的代码远没有做任何有意义的事情,例如
int route (argc)。如前所述,argc通常是传递给main()的参数数量,除非您在此处以完全不同的方式使用该符号名称。那我们应该怎么回答呢?
标签: c++ visual-studio-2012 setsockopt