Я не смотрел на вашу mystrstr
функцию, просто main
.
const char *str2="c",*result;
result=mystrstr(str1,str2);
if(*result!=NULL)
printf("found at %d location and the value is %s.",*result, str1+*result);
else
printf("Value not found");
result
- это const char *
; *result
является const char
.
Возможно, вы смешиваете NULL pointer
и NUL zero-terminator
?
result
может быть NULL
; *result
может быть '\0'
Редактировать: возможное решение
Когда strstr () не может найти подстроку, возвращается NULL. Предположим, что ваш mystrstr () работает так же, вы делаете
/* result=mystrstr(str1,str2); */
result=NULL;
, а затем
if(*result!=NULL) {/* ... */} else {}
но *result
может попытаться разыменовать нулевой указатель, который НЕ , что вы хотите.
Вы хотите проверить result
себя
if (result != NULL) { /* ... */ } else {}