关与c语言字符数组

来源:百度知道 编辑:UC知道 时间:2024/06/25 05:32:54
关与c语言字符数组
书上说用strcat函数时,数组1要定义得够大,足够容纳数组2.
还有strcpy函数,数组1要大于数组2.
但是我把数组1定义得比数组2还要小很多,可是编译也不报错,输出也是完全正常,与数组1定义的大的时候都一模一样,怎么回事呀???
高手帮我解惑,如果会出问题那会出在哪儿?
谢谢
对于1楼的回答,可是,问题就是数组1定义得不够大的时候也会完全接收数组2了(数组2的字符数大于数组1的容量的),与数组1定义的大的时候输出都是一模一样,一个字符也没少,丝毫没有什么出错的样子, 我搞不懂这是怎么回事啊

确实不会报错,strcat(*str1[n],*str2[m])的功能是把str2复制到str1的末尾,如果str1不够大,就不能完全接收字符串str2,就只是一部分而已,达不到我们的目的,所以要把str1定义的足够大。

假定数组1的容量为10,数组2的容量为20,使用strcpy将数组2内容复制到数组1,会发生什么?
1. 虽然数组2大小为20,却只包含10个有效字符,这种情况不会发生问题。
2. 数组2包含10以上的有效字符,数组1后面的内容将被覆盖。