回复 9楼 q332010372
VS有个模拟运行的功能,可以看到越界的错误!Linux还不是有看越界的工具valgrind(很强大,内存泄露和读写越界都可以检测!)以下是引用q332010372在2012-4-16 20:49:26的发言:
编译器是不会在编译期间检查,但是在发生越界的时候,应该要报错才对。这段代码在 windows vs 10.0 里面是会出错的,但在linux gcc 里面并不会出错
编译器是不会在编译期间检查,但是在发生越界的时候,应该要报错才对。这段代码在 windows vs 10.0 里面是会出错的,但在linux gcc 里面并不会出错
那是运行时系统报错,不是编译时编译器报错。如果编译开关设置了Debug模式,那么编译器会注入调试代码,在出错时启动调试器,如果设置了Release,就不会有调试代码,而靠操作系统处理。看来你没有学过C程序运行的原理,以为是编译器在运行程序。