这个代码哪错了啊?题目和错误提示如下:
char * longestCommonPrefix(char ** strs, int strsSize){ char *a = malloc(sizeof(char) * 10000);
int j = 1, z = 0;
if (strsSize == 0)
return "";
if (strsSize == 1)
return strs[0];
for (int i = 0; i < strlen(strs[0][i]); ++i) {
while (strs[j][i] && strs[j - 1][i] == strs[j][i]) {
j++;
}
if (j == strsSize) {
j = 1;
a[z++] = strs[0][i];
}
else
break;
}
a[z] = '\0';
return a;
}
回答:
你返回了一个局部变量 a
。你 malloc
一下吧。
回答:
首先求字符串长度参数不对。
报错信息是while
循环的j
值越界了,需要判断j < strsSize
回答:
i < strlen(strs[0][i])
这里有问题
回答:
那个 SEGV
有点像 segmentation fault
,我估计你数据越界了。
以上是 这个代码哪错了啊?题目和错误提示如下: 的全部内容, 来源链接: utcz.com/p/195236.html