注册 登录
编程论坛 C语言论坛

各位大佬,帮小弟看看这个三维数组怎么回事,不能正常编译呢

赵琳烽 发布于 2020-04-10 23:20, 2909 次点击
#include"stdio.h"
int main()
{
    int x = 0,y = 0,z = 0;
    int  n[100][100][100];
    for(x=0;x<100;x++){
        for(y = 0;y < 100;y++){
            for(z = 0;z < 100;z++)
    {
        n[x][y][z] = 100;
    }
    }
    }
    printf("初始化完成!");
   
    for(x=0;x<100;x++){
        for(y=0;y<100;y++){
            for(z=0;z<100;z++)
    {
        printf("n[%d][%d][%d]= %d",x,y,z,n[x][y][z]);
    }
    }
    }
    return 0;

}
16 回复
#2
forever742020-04-11 00:05
不是代码本身的问题吧,应该是你其他操作有问题。
有什么问题你得表达,不能坐等让人猜。
#3
xianfajushi2020-04-11 11:15
int  n[10][10][10];
#4
hbccc2020-04-11 11:40
可能数组太大了吧,改成三楼的数组就可以了
#5
吹水佬2020-04-11 11:49
相当于 n[1000000]
局部区很有限,放到全局区
#include <stdio.h>
int  n[100][100][100];
int main()
{
#6
赵琳烽2020-04-11 15:37
回复 楼主 赵琳烽
好的
#7
赵琳烽2020-04-11 15:41
回复 5楼 吹水佬
换到全局也不运行也出不了结果
#8
赵琳烽2020-04-11 15:42
回复 3楼 xianfajushi
把数组改小了之后就能正常运行了
#9
赵琳烽2020-04-11 15:43
回复 3楼 xianfajushi
谢谢大佬,数组改小了之后是能够正常运行的
#10
赵琳烽2020-04-11 15:45
回复 2楼 forever74
多谢大佬,小弟在学多维数组时做的一个小测试,遍历赋值,再遍历输出,能够正常编译,但是出不了结果,数组改小能用了
#11
赵琳烽2020-04-11 15:47
回复 2楼 forever74
小弟想多嘴问一个问题,为什么100不行呢??
#12
吹水佬2020-04-11 16:44
以下是引用赵琳烽在2020-4-11 15:41:53的发言:

换到全局也不运行也出不了结果

不清楚你运行的环境
可能是当时进程区域内存没有足够大连续的内存块
可以查看一下当时系统可用内存
#13
吹水佬2020-04-11 16:46
确实不行就不要用数组
#14
forever742020-04-11 18:07
4MB也不是很大,也可以设置一下连接器把栈空间多要一点,现在的机器完全可以满足。
例如VC的LINK
/STACK:8388608

[此贴子已经被作者于2020-4-11 18:11编辑过]

#15
赵琳烽2020-04-19 13:13
回复 13楼 吹水佬
好的
#16
赵琳烽2020-04-19 13:14
回复 14楼 forever74
小弟刚开始学,还不会搞连接器
#17
赵琳烽2020-04-19 13:14
回复 12楼 吹水佬
好的
1