目录
越界情况
越界的原因
越界情况
#include
#include
#include
using namespace std;
int f[100];
int main()
{
for(int i=0;i<100;i++)f[i]=i;
for(int i=0;i<10;i++)for(int j=0;j<10;j++)cout<
很明显会出现负数但程序能正常运行,就算直接写负数也行。
#include
#include
#include
using namespace std;
int f[100];
int main()
{
for(int i=-5;i<6;i++)cout<<&f[i]<
通过查询他的地址会发现往前查询,而这个位置的数就难以预知了。
#include
#include
#include
using namespace std;
int f[100];
int main()
{
for(int i=100;i<105;i++)cout<<&f[i]<
这种情况当然也行。
如果位于同一内存区就可以通过一个数组名访问到另一个数组的元素,例如
#include
#include
#include
using namespace std;
int f[100],p[100];
int main()
{
for(int i=95;i<=120;i++)cout<<&f[i]<<" f的第"<
越界的原因
在c/c++ 中,不会对数组边界检查,也就是说编译器不会报错,它会把数据写入到未知的内存地址,这时候就会很危险,轻则数据错乱,重则系统或程序崩溃。
很明显会出现负数但程序能正常运行,就算直接写负数也行。
#include#include #include using namespace std; int f[100]; int main() { for(int i=-5;i<6;i++)cout<<&f[i]< 通过查询他的地址会发现往前查询,而这个位置的数就难以预知了。
#include#include #include using namespace std; int f[100]; int main() { for(int i=100;i<105;i++)cout<<&f[i]< 这种情况当然也行。
如果位于同一内存区就可以通过一个数组名访问到另一个数组的元素,例如
#include#include #include using namespace std; int f[100],p[100]; int main() { for(int i=95;i<=120;i++)cout<<&f[i]<<" f的第"< 越界的原因
在c/c++ 中,不会对数组边界检查,也就是说编译器不会报错,它会把数据写入到未知的内存地址,这时候就会很危险,轻则数据错乱,重则系统或程序崩溃。



