为什么当我把数组a存满,这个程序运行结果就会出错

当我把数组a给存满时,很显然b输出多了一倍。原本应该只是6个,现在是12个

img

这是当我数组a没有存满时,输出结果正确

img

a数组存满之后,输出项的前6个“b”是来自于你的第一个while。因为anrry1和anrry2是连续定义的,中间没有空,所以当anrry1存满时,你无法用(*a!=NULL)来判断数组结束。

初始化一下array3的值为\0

你不要输入一大堆a和b,换成abcdefg这样再执行结果就非常明显了。

我们在创建数组时都要比实际大小➕1是为了存放结束符\0