一个C和指针里的例子,指针的指针,在字符串中搜索特定字符,并使用了指针数组来表示这些字符串,该怎么处理

一个C和指针里的例子,指针的指针,在字符串中搜索特定字符,并使用了指针数组来表示这些字符串
#include <stdio.h>


int
find_char(char   **strings,char   value)
{
//assert(strings!=NULL);
char   *string;
while((string=*strings++)!=NULL)
{
while(*string   != '\0 '){
printf( "%c\n ",*string);
if(*string++==value)
return   3;
}
// *strings++;
}
return   4;
}
void
main(){
char   *str[3]={ "abcd ", "efgh ", "ijkl "};
printf( "%d\n ",find_char(str, 's '));
printf( "%d\n ",find_char(str, 's '));
}


===================分割线===========
运行的时候出错,好象是这句有问题while(*string   != '\0 ')
不明白怎么错,是我初始化字符串数组的时候错了吗?

------解决方案--------------------
char *str[4]={ "abcd ", "efgh ", "ijkl "};
------解决方案--------------------
改改这句
char *str[3]={ "abcd ", "efgh ", "ijkl "};
->
char *str[4]={ "abcd ", "efgh ", "ijkl ", 0};