码迷,mamicode.com
首页 > 编程语言 > 详细

vs的数组重叠了???

时间:2020-01-01 15:21:00      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:vc++   fine   print   oid   问题   i++   image   数组   bsp   

用visual studio 2017 ,在打素数表时莫名发现另外一个数组被赋值了,搞了好久才明白是数组a最后一个元素 竟然和数组cnt第一个元素共用一个内存 ???

 

或许是bug或是处于什么目的吧,不过我在 vc++,和 dev c++ 测试了一下都没有这个问题。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N (int)10
int a[N];
int cnt[N];
int main(void)
{
    printf("%d\n", cnt[0]);
    a[0] = 1, a[1] = 1;
    for (int i = 2; i*i <= N; i++)
    {
        if (cnt[0] == 1)
        {
            printf("什么鬼 %d\n", i);
        }
        if (a[i] == 0)
        {
            for (int j = i*i; j <= N; j += i)
            {
                if (a[j] == 0)
                    a[j] = 1;
            }
        }
    }
    printf("%p %p %p %p\n", a, a[N], cnt, cnt[0]);
    
    system("pause");
    return 0;
}

 

技术图片

    可以看到他们的地址确实重复了。就这样吧,好坑啊!

vs的数组重叠了???

标签:vc++   fine   print   oid   问题   i++   image   数组   bsp   

原文地址:https://www.cnblogs.com/asdfknjhu/p/12128849.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!