动态内存分配和返回值3221225477

我正在做作业,问题如下:

  1. 接受用逗号分隔的单词。
  2. 提取每个单词并反转它们。
  3. 按顺序放回他们。

例如,如果输入“ apple,egg”,我将得到“ elppa,gge”

到目前为止,我已经完成了大部分程序,当我输入少于四个单词时,该程序运行良好,但是输入了超过四个单词,例如“ ybur,etaga,etiluzal,iluzal sipal,etihcalam”,则该程序无法正常工作。 t工作,它向我显示返回值3221225477。 我刚刚学习了如何使用动态内存分配,所以我认为这可能是由于我没有正确使用它造成的,如果是这样,请纠正我。

work_mem

我希望无论输入什么单词,该程序都能正常工作。

zhijiefang 回答:动态内存分配和返回值3221225477

b=(char**)malloc(sizeof(char)*c); 

应该是

b = malloc(sizeof(char *) * c); 
                       ^--------------(sizeof pointer)

到目前为止,您只为sizeof char * c分配了char **sizeof pointer * c

此外,您无需强制执行malloc返回。

本文链接:https://www.f2er.com/3168864.html

大家都在问