关于#c语言#的问题:弄不明白报错的溢出出在哪里,只留下一个char* res=(char*)malloc(sizeof(char)*201)以及return res都不行

力扣第十四题,弄不明白报错的溢出出在哪里,以至于最后我把大部分代码注释掉,只留下一个char* res=(char*)malloc(sizeof(char)*201)以及return res都不行,不明白了,谢谢指点!

//最长公共前缀
char *longestCommonPrefix(char ** strs, int strsSize){
    char *res=(char*)malloc(sizeof(char)*201);
    memset(res,'0',sizeof(char)*201);
    int p=0;
    while(p<201){
      char temp='0';
      for(int i=0;i//strs[i][]      
         if(strs[i][p]=='\0') return res;
         if(temp=='0') temp=strs[i][p];
         else if(strs[i][p]!=temp) return res;
      }//for
      res[p]=temp;
      p++;
    }
    return res;
}

题目如下:
编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 ""。

代码没贴全吧,只有这17句吗?应该在别的地方,你贴全看下