Gilcimar 0 Denunciar post Postado Novembro 21, 2008 Olá pessoal, tudo bem ? Será que alguém poderia me ajudar com um erro quando teu termino o programa na rotina de array dinamico ? É assim, tenho um programa que faz um random de X valores. Estes valores eu jogo em um ListBox e depois armazeno em um array dinamico: SetLength(vArray,QNT); for X := 0 to QNT do begin Y := RandomRange(N, N2); ListBox1.Items.Add(IntToStr(Y)); vArray[x] := Y; end; Até aqui o programa tá funcionando, mas quando eu uso o método Quick Sort pra ordenar o vetor com muitas posições, dá esse erro quando eu saio do programa: Exception EInvalidPointer in module Project1.dpr Invalid Pointer Operation Esse erro ocorre quando eu uso o método Quick Sort com passagem de parametro: pQuickSort(0,QNT) // 0 - posição inicial //QNT - tamanho do meu vetor Abaixo minha rotina QuickSort: procedure TForm1.pQuickSort(esquerdo, direito: integer); var e,d,aux,chave:integer; begin e:=esquerdo; d:=direito; chave:= varray[(esquerdo+direito)div 2]; repeat while(varray[e]<chave)do e:=e+1; while(varray[d]>chave)do d:=d-1; if(e<=d) then begin aux:= varray[e]; varray[e]:=varray[d]; varray[d]:=aux; inc(e); dec(d); end; until(e>d); if(esquerdo<d)then pQuickSort(esquerdo,d); if (e<direito)then pQuickSort(e,direito); end; Alguém por favor tem alguma idéia do que seja ? Eu iniciei o vetor com a posição 0 por que li um material que diz que o vetor dinamico inicia em 0. Gilcimar Compartilhar este post Link para o post Compartilhar em outros sites
Gilcimar 0 Denunciar post Postado Novembro 21, 2008 Olá pessoal, tudo bem ? Será que alguém poderia me ajudar com um erro quando teu termino o programa na rotina de array dinamico ? É assim, tenho um programa que faz um random de X valores. Estes valores eu jogo em um ListBox e depois armazeno em um array dinamico: SetLength(vArray,QNT); for X := 0 to QNT do begin Y := RandomRange(N, N2); ListBox1.Items.Add(IntToStr(Y)); vArray[x] := Y; end; Até aqui o programa tá funcionando, mas quando eu uso o método Quick Sort pra ordenar o vetor com muitas posições, dá esse erro quando eu saio do programa: Exception EInvalidPointer in module Project1.dpr Invalid Pointer Operation Esse erro ocorre quando eu uso o método Quick Sort com passagem de parametro: pQuickSort(0,QNT) // 0 - posição inicial //QNT - tamanho do meu vetor Abaixo minha rotina QuickSort: procedure TForm1.pQuickSort(esquerdo, direito: integer); var e,d,aux,chave:integer; begin e:=esquerdo; d:=direito; chave:= varray[(esquerdo+direito)div 2]; repeat while(varray[e]<chave)do e:=e+1; while(varray[d]>chave)do d:=d-1; if(e<=d) then begin aux:= varray[e]; varray[e]:=varray[d]; varray[d]:=aux; inc(e); dec(d); end; until(e>d); if(esquerdo<d)then pQuickSort(esquerdo,d); if (e<direito)then pQuickSort(e,direito); end; Alguém por favor tem alguma idéia do que seja ? Eu iniciei o vetor com a posição 0 por que li um material que diz que o vetor dinamico inicia em 0. Gilcimar PROBLEMA RESOLVIDO !! Compartilhar este post Link para o post Compartilhar em outros sites