真是个奇葩的错误啊
pascal吧
全部回复
仅看楼主
level 3
对于一个procedure过程,在其内部定义数组,只要不超空间或者递归报栈,不会出错吧==
但是这个程序运行后会出现202错误,并且F7跟踪显示在定义数组时出错==
真是费解啊
敢问吧里有大神能给解释解释或者有吧友遇到过同样问题吗?
2014年10月08日 13点10分 1
level 3
program cube;
const t=1000000007;
var d,p,ii,k:longint;
a:array[0..100] of longint;
{************************************************************}
procedure hahaha;
begin
close(input);
close(output);
halt;
end;
{************************************************************}
procedure search1;
var b:array[0..1000,0..1000] of boolean;
f:array[0..1000,0..1000] of longint;
i,j,x,y:longint;
begin
hahaha;
end;
{************************************************************}
begin
readln(d,p);
if d=2 then search1;
hahaha;
end.
2014年10月08日 13点10分 2
level 3
这是代码,有兴趣的可以自己拷贝下来试一下[呵呵]
表示过去从没出现过这个错误啊
2014年10月08日 13点10分 3
level 3
嗯,又看了看【提问的艺术】,如果上文的某些说法不太礼貌(显得我是个伸手党)的话,包涵哈[吐舌]
我说说我采取的措施吧:
Ctrl+F9:202
F7:运行到要定义数组时出现【Program recieved signal SIGSEGV Segmentation fault】
然后就卡出来了= =
F8:上同= =
[啊]怎么回事呢?原来没遇到过这种错误的
2014年10月08日 13点10分 4
level 3
PS.如果要试一试此程序,请输入2和任意的一个longint范围内的正整数
2014年10月08日 13点10分 5
level 9
问题是这个程序意义何在?
2014年10月08日 14点10分 6
level 9
“么”的拼音是mě[滑稽]
2014年10月09日 10点10分 7
好吧我错了 “么”没有声调
2014年10月09日 10点10分
???[汗]
2014年10月11日 00点10分
level 4
资源耗尽了吧
2014年10月09日 16点10分 8
占用内存空间不大啊
2014年10月10日 11点10分
level 8
栈空间不是白送的 。令外你assign了吗就close?!
2014年10月09日 22点10分 9
正解
2014年10月10日 04点10分
回复 aiqi550963 :这和栈空间有什么关系[疑问]
2014年10月10日 11点10分
level 3
因为这个代码是一道奥赛题,在cena上测试,所以需要assign,但为了让代码更容易理解,我把很多东西(search过程的内容都删掉了。事实证明未删close的情况下是可以编译过的,这点没有影响。
如果需要,我可以贴整个代码,但那没意义啊,我只是想知道为何在procedure过程中不能定义数组。
2014年10月10日 11点10分 10
1