内存越界是很让人发愁的事情.为什么发愁?关键就在于,越界访问了,并不会马上出错,甚至可能不出错.举例来说:
#include <stdlib.h> #include <stdio.h> #include <string.h> int main(int argc, char **argv) { char buffer[32] = "quantum6"; printf("buffer = %s\n", buffer); //不出错. //buffer[55] = 0; //崩溃 buffer[56] = 0; //会循环运行 //buffer[56] = 8; printf("buffer = %s\n", buffer); return 0; }
以上代码做过几次测试,都是这样的结果.
那么怎么办?吾想到一个办法:
实现一个类,重载[]操作符.
以后有机会试试.