各位大大好
小弟在;windows 使用Dev c++
写C遇到一个问题
配置动态二微阵列都会出错
感觉是配制太大 所以当掉
unsigned long **horizontal;
unsigned long i, j;
horizontal=(unsigned long **)malloc(5*sizeof(unsigned long*));
for(i=0; i<5; i++)
horizontal[i]=(unsigned long *)malloc(400*sizeof(unsigned long));
如果改成300就没问题
是不是因为unsigned long 所以爆掉了?
可是算一算 400*5 bytes 不是约2mb吗?
为什么会当? 或是我误解什么了?
反过来配置就不会有问题
horizontal=(unsigned long **)malloc(400*sizeof(unsigned long*));
for(i=0; i<5; i++)
horizontal[i]=(unsigned long *)malloc(5*sizeof(unsigned long));
为什么@@??
有其他方法吗?