problem z malloc
Masz problem? Zapytaj na forum elektroda.pl
From: "Jacek M." <tymkonto_at_nospam_poczta.onet.pl>
Subject: problem z malloc
Date: Tue, 4 Apr 2006 16:49:39 +0200
Witam.
Zwracam sie do Was z problemem dotyczacym uzycia funkcji malloc w GCC. W
funkcji main() wywoluje dwie napisane przeze mnie funkcje dla ktorych
parametrem wejsciowym jest wskaznik do lancucha znakow uchar. Jesli lancuch
ten mam zdefiniowany statycznie (linie zaremowane w listingu) program dziala
bezblednie. Jesli zadeklaruje go z uzyciem malloc() blokuje sie po kilku
minutach. Poniewaz parametrem wejsciowym kazdej z tych funkcji jest wskaznik
do lancucha znakow, przed kazdym wywolaniem tych funkcji odtwarzalem go z
zapamietanego bufora ale to niestety nie pomoglo. Moze zasugerujecie mi
miejsce gdzie popelniam blad?
Z gory dziekuje za pomoc.
#include <stdlib.h>
FLAGS funkcja1(uchar *ptr);
void funkcja2(uchar *ptr1);
int main (void)
{
uchar *vPtr=0, *vPtrBuf=0;
// uchar masa[25];
vPtr=(uchar*)malloc(25);
vPtrBuf=vPtr;
while(1)
{
vPtr = vPtrBuf;
if( funkcja1( vPtr ) == YES )
// if( funkcja1( masa ) == YES )
{
vPtr = vPtrBuf;
funkcja2( vPtr );
// funkcja2( masa );
} // if( status == YES )
} // while(1)
return (0);
} // main()
Jacek M.
From: J.F. <jfox_xnospamx_at_nospam_poczta.onet.pl>
Subject: Re: problem z malloc
Date: Tue, 04 Apr 2006 17:53:33 +0200
On Tue, 4 Apr 2006 16:49:39 +0200, Jacek M. wrote:
Zwracam sie do Was z problemem dotyczacym uzycia funkcji malloc w GCC. W
funkcji main() wywoluje dwie napisane przeze mnie funkcje dla ktorych
parametrem wejsciowym jest wskaznik do lancucha znakow uchar. Jesli lancuch
ten mam zdefiniowany statycznie (linie zaremowane w listingu) program dziala
bezblednie. Jesli zadeklaruje go z uzyciem malloc() blokuje sie po kilku
minutach.
Te twoje funkcje przypadkiem nie zmieniaja lancucha ?
I na pewno nie wyskocza poza 25 znakow ?
Bo jak wyskocza to moze byc istotne co zmienia.
J.
From: "Jacek M." <tymkonto_at_nospam_poczta.onet.pl>
Subject: Re: problem z malloc
Date: Tue, 4 Apr 2006 20:15:20 +0200
Zwracam sie do Was z problemem dotyczacym uzycia funkcji malloc w GCC.
Jesli lancuch ten mam zdefiniowany statycznie (linie zaremowane w
listingu) program dziala
bezblednie. Jesli zadeklaruje go z uzyciem malloc() blokuje sie po kilku
minutach.
Te twoje funkcje przypadkiem nie zmieniaja lancucha ?
I na pewno nie wyskocza poza 25 znakow ?
Dzieki. Prawdopodobnie tutaj lezy problem. Funkcji w ktorych mam obszary RAM
zdefiniowane za pomoca malloc w moim programie jest sporo. Musze sprawdzic
czy nie przekraczam zadelkarowanych wielkosci. Troche sporo roboty ale to
jest chyba dobry pomysl na ktory sam nie wpadlem wczesniej.
Jeszcze raz dzieki.
Jacek M.
From: J.F. <jfox_xnospamx_at_nospam_poczta.onet.pl>
Subject: Re: problem z malloc
Date: Tue, 04 Apr 2006 21:18:15 +0200
On Tue, 4 Apr 2006 20:15:20 +0200, Jacek M. wrote:
Te twoje funkcje przypadkiem nie zmieniaja lancucha ?
I na pewno nie wyskocza poza 25 znakow ?
Dzieki. Prawdopodobnie tutaj lezy problem. Funkcji w ktorych mam obszary RAM
zdefiniowane za pomoca malloc w moim programie jest sporo. Musze sprawdzic
czy nie przekraczam zadelkarowanych wielkosci. Troche sporo roboty ale to
jest chyba dobry pomysl na ktory sam nie wpadlem wczesniej.
Jeszcze raz dzieki.
No coz - wersja "objawowa" - zaalokowac troche wiecej pamieci, wpisac
cos poza spodziewany obszar, sprawdzac czy po wywolaniu funkcji nadal
jest tam to samo..
J.
From: "Jacek M." <tymkonto_at_nospam_poczta.onet.pl>
Subject: Re: problem z malloc
Date: Tue, 4 Apr 2006 23:16:16 +0200
No coz - wersja "objawowa" - zaalokowac troche wiecej pamieci, wpisac
cos poza spodziewany obszar, sprawdzac czy po wywolaniu funkcji nadal
jest tam to samo..
I tak bede musial zrobic. Chcialem tego uniknac z powodu ilosci wywolan
funkcji malloc ale coz, najwyrazniej nie ma innego wyjscia. Dzieki za pomoc
i goraco pozdrawiam.
Jacek M.