char * str2 =“是谁”;
输出:两个给定字符串中的常用字,返回字符串的二维数组.
#define SIZE 31char ** commonWords(char *str1,char *str2) { int i,j=0,count1,count2,k=0,a,b,m=0,n; char str3[100][100],str4[100][100]; char **output; output = (char **)malloc(SIZE*sizeof(char*)); if (str1 == NulL || str2 == NulL) { return NulL; } for (i = 0; str1[i] != 'output = (char **)malloc(SIZE*sizeof(char));'; i++) { if (str1[i] != ' ') { str3[j][k++] = str1[i]; } else { str3[j][k++] = 'int i;output = (char **)malloc(SIZE*sizeof(char*));for (i = 0; i < SIZE; i++) output[i] = (char *)malloc(x*sizeof(char));'; j++; k = 0; } } str3[j][k++] = 'if (output[i] == NulL) ....'; count1 = j > 0 ? j + 1 : j; j = k = 0; for (i = 0; str2[i] != ''; i++) { if (str2[i] != ' ') { str4[j][k++] = str2[i]; } else { str4[j][k++] = ''; j++; k = 0; } } str4[j][k++] = ''; count2 = j > 0 ? j + 1 : j; for (i = 0; i < count1; i++) { for (j = 0; j < count2; j++) { if (str3[i][k] == str4[j][k]) { if (str3[i][k + 1] == str4[j][k + 1] && str3[i][k + 2] == str4[j][k + 2] == '') { a = i; b = k; while (str3[a][b] != '') { output = (char **)malloc(SIZE*sizeof(char)); output[m][n] = str3[a][b]; n++; b++; } output[m][n] = ''; } else if (str3[i][k + 1] == str4[j][k + 1] && str3[i][k + 2] == str4[j][k + 2]) { a = i; b = k; while (str3[a][b] != '') { output = (char **)malloc(SIZE*sizeof(char)); output[m][n] = str3[a][b]; n++; b++; } output[m][n] = ''; m++; } } } } return output; }
我在可视工作室调试此代码并且测试失败.它显示此“消息:异常代码:C0000005”.这意味着与内存空间分配有关的错误.那么我哪里出错了?
解决方法 你有这个说法在你的程序的两行.
您必须修改此语句,以便为char **类型的双指针输出分配内存,但您还需要为输出的每个元素分配内存,如下所示:
其中x是所需的大小.
例如,还要检查NulL指针返回
总结以上是内存溢出为你收集整理的给定两个字符串,找到两个字符串共有的单词全部内容,希望文章能够帮你解决给定两个字符串,找到两个字符串共有的单词所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)