有鱼油知道为啥我的strcpy在溢出之后没有报错吗
#include<stdio.h>#include<string.h>
int main(void)
{
char str1[]="OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOriginal string";
char str2[]="New String";
strcpy(str2,str1);
printf("%s,%s",str1,str2);
return 0;
} 内存溢出和内存报错是不一样的。strcpy(str2, str1)就是从str2这个位置开始写字符串,写到'\0'为止,不考虑str2这个位置实际分配了有多大,只有写到了不能写的内存才会报错,只要内存能写,就会一直写下去。编译器并不会检查是否溢出这个问题。
页:
[1]