Я считаю, что это из-за strcmp(). Я пробовал это несколько способов, и это только последнее. Моя цель - получить индекс массива, чтобы я мог перейти к оператору switch для выполнения кода. Любая помощь будет оценена, хотя я ожидаю «Ты не сможешь этого сделать».Почему возникает ошибка сегментации с помощью strcmp
Большое изображение, чтобы включить этот надрез кода в файл «полезности», который имеет несколько «функции» и назвал бы это как Util («Ping»), чтобы выполнить Ping и так далее ...
int main(){
char *cmd = "Ping";
char *names[3]={"Ping","Stop","Go"};
int index = 3;
int i;
char *test;
for (i = 0; i < 44; i++)
{
test = names[i];
if (!strcmp(cmd,test))
{
index = i;
}
}
printf("%s is index of %d\n",cmd,index);}
Потому что вы зацикливаете на 44 элемента вместо 3? –
Неправильно отредактируйте это, там будет 44 элемента в коммутаторе, но я опустил его на стол. – Kyle
Действительно ли это segfault для 3? Я так не думаю. –