C语言中发生写入冲突

#include <stdio.h>
//#include<math.h>
#include<string.h>
//#define MAX 0x3f3f3f3f
//void exchange(int e, int f);
//void exchange(int e,int f) 
//{
//    int a = 0, b = 0, c = 0, d = 0;
//    a = f;
//    b = e;
//    printf("a=%d,b=%d",a,b);
//}

int main() 
{
//设立必要变量
    int a = 0, b = 0,x=0,count=0,i=0;


//定义数组以及初始化
    int number[0x7777777];
    int tiko[0x7777777];
    memset(number, 0, sizeof(number));
    memset(tiko, 0, sizeof(tiko));

    //依次写入数组
    printf("请输入");
    scanf_s("%d", &x);
        if (x != -1)
        {
            number[count] = x;
            for (i = 0; i < 0x7777777; i++)
            {
                //计数
                if (number[count] = i) 
                {
                    tiko[count]++;
                }
            }
            count++;
            scanf_s("%d", &x);
        }

        //输出数字以及个数
        for (a = 0; a < count; a++)
        {
            if (tiko[a] != 0)
                printf("%d %d次\n", number[a], tiko[a]);
        }

    //printf ("请输入你想交换的数字");
                    
    //scanf_s("%d %d", &a,&b);

    // exchange(a,b);

    return 0;
 }

这个代码在 int main{ 处显示写入冲突,请问怎么解决?

报错是栈溢出了,不要定义用那么大的数组,数组改小,或者堆栈改大都行.相对来说数组改小容易些.

int number[0x7777777];int tiko[0x7777777]; 两个数组定义的太大了。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^