以exitcode = 216退出,我的程序出现问题. [英] Exited with exitcode=216, problem with my program.

查看:82
本文介绍了以exitcode = 216退出,我的程序出现问题.的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好,这是我的程序,没有编译器消息,但是在运行时退出,有人可以帮助我吗?

Hello, this is my program, there is no compiler message, but at the runtime it exits, can anyone please help me?

program MyProgr;
    
    var
            F: text;
            t:Textfile;
            a,count:array of Integer;
            b:Integer;
            i,int:Integer;
            countnums:Integer;
            n,m:String;
            lin,nums:Integer;
            Small,Big:Integer;
    
    procedure DoWhatEver(S: string);
    begin
    val(s,int);
    Write(s,''     '');
    for i:=Small to Big do
    if (a[i]=int) then
    count[i]:=count[i]+1;
    end;
    
    procedure FilltheArray;
    begin
    for i:=Small to Big do
    a[i]:=i+1 ;
    end;
    
    
    
    
    
    
    
    procedure ProcessString;
    var
            Strng, S: string;
            Last, P: integer;
    begin
            readln(F,Strng);
            Last:=0;
            while Last<length(Strng) do
            begin
                    P:=Last+1;
                    while (P<=length(Strng)) and (Strng[P]<>'' '') do
                            inc(P);
                    S:=copy(Strng,Last+1,(P-Last-1));
                    DoWhatEver(S);
                    Last:=P;
            end
    end;
    
    
    
    
    
    procedure ProcessStringA;
    var
            Strng: string;
            Last, P: integer;
    begin
            readln(F,Strng);
            Last:=0;
            while Last<length(Strng) do
            begin
                    P:=Last+1;
                    while (P<=length(Strng)) and (Strng[P]<>'' '') do
                            inc(P);
                    n:=copy(Strng,Last+1,(P-Last-1));
                    Val(n,nums);
                    Last:=P;
            end
    end;
    
    
    
    
    
    
    
    procedure ProcessStringB;
    var
            Strng: string;
            Last, P: integer;
    begin
            readln(F,Strng);
            Last:=0;
            while Last<length(Strng) do
            begin
                    P:=Last+1;
                    while (P<=length(Strng)) and (Strng[P]<>'' '') do
                            inc(P);
                    m:=copy(Strng,Last+1,(P-Last-1));
                    Val(m,lin);
                    Last:=P;
            end
    end;
    
    
    
    
    
    
    begin
            assign(F,''myfile.txt'');
            reset(F);
            ProcessStringA;
            Writeln(nums);
            ProcessStringB;
            Writeln(lin);
            setlength(a,nums);
            Small:=Low(a);
            Big:=High(a);
            for i:= Small to big do
            count[i]:=0;
            FillTheArray;
            while not eof(F) do ProcessString;
    
            for i:=Small to Big do
            begin
            if count[i]=2 then
            countnums:=countnums+1;
            end;
             Close(f);
            Assign(t,''fileout.txt'');
            Rewrite(t);
            Writeln(t,countnums);
            close(t);
    
    
    end.

推荐答案

错误216一般保护错误.您的情况可能是内存错误.例如,count被声明(并用作)数组,但是您从未为其分配内存.
Error 216 is a general protection fault. Probably a memory error in your case. For instance, count is declared (and used) as an array, but you never allocated memory for it.


您的count数组没有尺寸!因此,为其元素分配值是违反内存的...
Your count array has no dimensions! So assigning values to its element is a memory violation...


这篇关于以exitcode = 216退出,我的程序出现问题.的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆