悪いポインタを取得し続けます。誰かが私に間違っていることを教えてもらえますか?文字列の配列内の文字列を検索
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文字(2次元として指定したもの)を保持できます。あなたは 'char str [] [4] = {" mov "、" cmp "、...};およびif(SearchString(str、" word "、sizeof str/sizeof * str) == -1)/ * ... * /; ' – pmg