二维字符数组按行输出连续到下一行的解决办法

时间:2024-03-17 09:03:36

二维字符数组按行输出连续到下一行的解决办法

二维字符数组在按行进行输出的时候,会由于越界导致输出连续到下一行。如:
二维字符数组按行输出连续到下一行的解决办法
同时出现了后续乱码问题,这个后面说。
如图,将"37"都copy到SNR[6]和SNR[7]中,输出SNR[6]的时候,会连续输出两个"37",先怀疑了输入输出重复的情况,重新设置然后测试:
二维字符数组按行输出连续到下一行的解决办法
看到并不是输入输出重复的问题。考虑二维数组的排列性质:
二维字符数组按行输出连续到下一行的解决办法
数组的地址是从首地址之后连续排列的,即如:a[0][1]后的下一个地址即为a[1][0]。

故考虑越界的问题,第二维的长度不满足加上’\0’字符后的行长度。将第二维长度扩大,变为3测试:

二维字符数组按行输出连续到下一行的解决办法
可以看到,第二维长度扩大为3之后,输出正常了,乱码也不见了,猜测是由于输出字符串没有’\0’结束符,所以输出后续非正常码。

阿猪米德
2019.05.09于湖北武汉