15. 02. 2009. | #1 |
član
Na probnom radu
Datum učlanjenja: 17.11.2007
Poruke: 36
Hvala: 4
0 "Hvala" u 0 poruka
|
Double pointers - C (Cudno!)
Pozdrav!
Kada ubacim ovaj kod u program, pocinje da mi se popunjava memorija na serveru. Ide prilicno sporo, svakih 30-tak sekundi zauzme se 0,1%. Ako izbacim ovaj malloc, onda je sve ok... Da li neko ima ideju zbog cega nastaje ovaj problem? char **p_char_list_fields = (char**)malloc(10); if (p_char_list_fields == NULL) { /*stop*/ } if (p_char_list_fields != NULL) { free(p_char_list_fields); } |
15. 02. 2009. | #2 |
član
Certified
Datum učlanjenja: 03.10.2006
Poruke: 96
Hvala: 27
44 "Hvala" u 26 poruka
|
Ja ovde vidim dva problema, prvo:
(char **)malloc(10) bi trebalo (char **)malloc(10*sizeof(char *)) sizeof(char *) je uglavnom 32 A drugi je da ako si negde alocirao memoriju za neki od tih 10 pokazivaca/stringova (iako ovim kodom alociras 2 ipo moras o tome vodti evidenciju i dealocirati i njih negde. Nadam se da je pomoglo. |
15. 02. 2009. | #3 |
xyz
Grand Master
Datum učlanjenja: 25.10.2006
Poruke: 893
Hvala: 87
346 "Hvala" u 163 poruka
|
Kod ti je ispravan, osim sto verovatno ne radi ono sto si hteo
sizeof(char*) == sizeof(char**) == 4 (najcesce) |
15. 02. 2009. | #4 |
član
Certified
Datum učlanjenja: 03.10.2006
Poruke: 96
Hvala: 27
44 "Hvala" u 26 poruka
|
uf da pardon, 4
|
15. 02. 2009. | #5 |
član
Na probnom radu
Datum učlanjenja: 17.11.2007
Poruke: 36
Hvala: 4
0 "Hvala" u 0 poruka
|
Nisam nigdje alocirao dodatnu memoriju, u tome i jeste problem.
Htio sam da taj niz vratim kao rezultat funkcije char **neka_funkcija(); Medjutim, kada unutar te funkcije alociram memoriju...nisam mogao da je oslobodim poslije. Onda sam pokusao da je unutar funkcije oslobodim, odmah nakon alociranja,ali ne ide. Sada sam uradio to na slijedeci nacin char **p_char_list_fields = (char**)malloc(sizeof(char *[10])); void neka_funkcija(char **p_char_list_fields) { //napravi 10 stringova } //uradi nesto //free memory I na ovaj nacin radi ok. Ali onako nece... |
|
|
Slične teme | ||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
preg_replace problem :) krajnje cudno | flash_back | Sva početnička pitanja | 23 | 02. 03. 2010. 00:56 |
Double Click | bojan.pejanovic | Marketing i SEO | 0 | 20. 10. 2009. 16:35 |
Double float problem - resen, ali ima dodatni problem :0 | ljtruba | (X)HTML, JavaScript, DHTML, XML, CSS | 34 | 23. 08. 2008. 03:28 |
find -size mi se cudno ponasa | ivanhoe | Web aplikacije, web servisi i software | 7 | 25. 04. 2008. 10:27 |