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.