当我在我的iphone上运行我的CLI程序时,我得到一个段错误: 11错误。我不知道该怎么办,我是C的新手。
int main (int argc, const char * argv[])
{
if (argc > 1 && (!strcmp(argv[1],"--help") || !strcmp(argv[1],"-h"))) {
printf("#### redhai 1.2 ####\n");
printf("-j Jailbreak\n");
printf("-i Device info\n");
printf("-a About\n");
printf("*END OF HELP*\n");
printf("####################\n");
return 0;
}else if (!strcmp(argv[1],"-j")) {
printf("Coding the jailbreak portion!\n");
return 0;
}
return 0;
}发布于 2012-06-24 08:53:49
您正在访问argv[1],而没有首先检查它是否存在。您需要首先检查argc > 1。
} else if (argc > 1 && !strcmp(argv[1],"-j")) {
// ^^^^^^^^^^^^发布于 2012-06-24 08:56:11
问题出在逻辑上。可以将NULL传递给strcmp,以防argc小于或等于1。要修复它,请按如下方式重新排序检查:
int main (int argc, const char * argv[])
{
if (argc > 1) {
if (!strcmp(argv[1],"--help") || !strcmp(argv[1],"-h")) {
printf("#### redhai 1.2 ####\n");
printf("-j Jailbreak\n");
printf("-i Device info\n");
printf("-a About\n");
printf("*END OF HELP*\n");
printf("####################\n");
} else if (!strcmp(argv[1],"-j")) {
printf("Coding the jailbreak portion!\n");
}
}
return 0;
}https://stackoverflow.com/questions/11174193
复制相似问题