例如:输入:char * str1 ="一切都很好&#34 ;; char * str2 ="是&#34 ;; 输出:两个给定字符串中的常用字,返回字符串的二维数组。
implicit none
我正在视觉工作室中调试此代码并且测试失败。它显示了这个"消息:异常代码:C0000005" 。这意味着与内存空间分配有关的错误。那我哪里出错?
答案 0 :(得分:1)
你有声明
output = (char **)malloc(SIZE*sizeof(char));
在您的计划的两行。
您必须修改此语句,以便为类型为output
的双指针char**
分配内存,但您还需要为output
的每个元素分配内存,如下所示:< / p>
int i;
output = (char **)malloc(SIZE*sizeof(char*));
for (i = 0; i < SIZE; i++)
output[i] = (char *)malloc(x*sizeof(char));
其中x
是所需的大小。
还检查NULL指针返回,例如
if (output[i] == NULL)
....