char a[5] // 在堆中申请了5个byte的空间,起始地址是a
a[5] = "12345" //以a为起始地址,一次写入六个字符,结束字符为\0
显然越界了,但c语言没有内存越界检测,程序是写错了,但这次内存越界没造成坏的结果
--以上
【 在 shouge111 的大作中提到: 】
: 变量a长度是5,那么根据教材,它只能存储1234,最后一个存储单元应该存储字符串结束标志\0。
: 但是实际运行,a存储了12345.这是怎么回事呢?printf打印也是打印了12345
: #include<stdio.h>
: ...................
--
FROM 111.199.186.*