superswagy2002 发表于 2021-9-25 14:22:22

有鱼油知道为啥我的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;
}

JingHe1997 发表于 2021-9-25 16:10:11

内存溢出和内存报错是不一样的。strcpy(str2, str1)就是从str2这个位置开始写字符串,写到'\0'为止,不考虑str2这个位置实际分配了有多大,只有写到了不能写的内存才会报错,只要内存能写,就会一直写下去。编译器并不会检查是否溢出这个问题。
页: [1]
查看完整版本: 有鱼油知道为啥我的strcpy在溢出之后没有报错吗