Я продолжаю получать плохие указатели. Может ли кто-нибудь сказать мне, что я делаю неправильно?поиск строки в массиве строк
int SearchString(char* arr[], char* key, int size)
{
int n;
for (n = 0; n < size; ++n) {
if (strcmp(arr[n], key)) {
return n;
}
}
return -1;
}
char str[][16] = { "mov","cmp","add","sub","lea","not","clr","inc","dec","jmp","bne","red","jrn","psr","rts","stop"};
if(SearchString(str,"word",16) == -1){ return FALSE;}
Ваш 'str' - это массив из 16 строк (автоматически созданный 16), каждый из которых может содержать 15 + 1 символов (которые вы указали как второе измерение). Вы можете сохранить несколько байтов с помощью 'char str [] [4] = {" mov "," cmp ", ...};' и 'if (SearchString (str," word ", sizeof str/sizeof * str) == -1)/* ... * /; ' – pmg