这个代码哪错了啊?题目和错误提示如下:

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;

}

imageimage

回答:

你返回了一个局部变量 a 。你 malloc 一下吧。

回答:

首先求字符串长度参数不对。

报错信息是while循环的j值越界了,需要判断j < strsSize

回答:

i < strlen(strs[0][i])

这里有问题

回答:

那个 SEGV 有点像 segmentation fault,我估计你数据越界了。

以上是 这个代码哪错了啊?题目和错误提示如下: 的全部内容, 来源链接: utcz.com/p/195236.html

回到顶部