Registrace nového uživatele     Návod     Kluby     Archív  Lopuchu     Lopuch.cz  

Když diskuse,
tak s Lopuchem

Lopuch.cz

Jméno:
Heslo:
Podpora LCD:
 
Klub C, C++ [ŽP: neomezená] (kategorie Programování) moderuje Šéf Lopuchu.
Archiv

Články

Jak bezpečně ukončit vlákno z DllMain
FastAllocPool - urychlení častých alokací a dealokací
Akce a zpráva jako objekt
Tuply v C++
Efektivní alokátor malých objektů a tady druhý a třetí díl
Šablony: Být vládce kvalifikátorů
Vracíme z funkce objekty
Základy komunikace mezi procesy (ve Windows)
Multiple Interface a Instance Factory
Multithreading v C++ (ve Win32)
  Nastavení klubu     Nastavení práv     Homepage     Anketa     Přítomní     Oblíbené     Lopuch     Kategorie  
autor: 
text: 
vyplnit a 
Help
 Titulek, text příspěvku  
Opište pozpátku následující text bez prostředního znaku: fqulhpz
[ 380 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  
mpts mpts Je to jinak, ba přesně naopak! 29.3.2009 17:10  748
Bredy [746]: Proč, však ona se při restartu uklidí sama... ;-))
davpe Davpe 27.3.2009 00:18  747
Bredy: jasne, neboj ;)
bredy 26.3.2009 16:22  746
DavpeNezapoměň pak paměť uklidit.
davpe Davpe 26.3.2009 15:24  745
aha, tak to je pro me novinka, takze me tohle chovani dost zaskocilo :) funguje to, diky moc! :)

jinak o tom, ze je to stejne vim, ale uz jsem byl trochu zoufaly, tak jsem zkousel vsechno mozne :D
huh huh 26.3.2009 01:18  744
Davpe [743]: To je jednoduchý, newA ve funkci add se alokuje na zásobníku, po ukončení této funkce se tato pamět na zásobník vrátí a někdy během prvního volání printf se znovu použije.

Řešení: pamět alokovat v haldě:
void add (A **array) {
A* newA = malloc(sizeof(A));
newA->structB.value = 12345;
array[1] = newA;
}


BTW add(&*pointers); je úplně to samý jako add(pointers);
davpe Davpe 26.3.2009 00:45  743
Potreboval bych pomoctmam tento kod

#include "stdio.h"
#include "stdlib.h"

struct b {
int value;
};

struct a {
struct b structB;
};

typedef struct a A;

void add (A **array) {
A newA;
newA.structB.value = 12345;
array[1] = &newA;
}

A *pointers[5];

int main (void) {
add (&*pointers);

printf("%d\n", pointers[1]->structB.value); // Vypise 12345 -> spravne
printf("%d\n", pointers[1]->structB.value); // Vypise nesmysl (pravdepodobne adresu v pameti), proc?
getchar();

return 0;
}


predem dekuji za odpoved. klidne po mne rvete, hlavne mi reknete co delam blbe
bredy 4.2.2009 00:24  742
Tohle by mohlo někoho zajímatJak dostat řetězec do parametru šablony
bredy 30.1.2009 14:53  741
Popis rozhraní GC v C++
huh huh 27.1.2009 13:03  740
BTW, výborná kniha Pasti a propasti jazyka C++ jen za 87 Kč.
Zlevněno toho maj samozřejmě víc (Symbian atd...).
bredy 30.12.2008 23:32  739
Další pokus o Garbage Collector v C++
ago 4.11.2008 21:23  738
moc moc dakujem
bredy 4.11.2008 20:30  737
(slovenský překlad) :-D
bredy 4.11.2008 20:28  736
AGONo v Céčku můžeš použít normálně fopen(). Funkce akorát musí tento soubor buď vrátit nebo předat nějak jinak.

Soubor se deklaruje jako:
FILE *soubor;


Pokud ho chceš z funkce vracet.
FILE *otevriSoubor( ... ) {
  ...
  ...
  FILE *soubor = fopen(...);
  ...
  return soubor;
}

Pak soubor někdy zavřeš
fclose(f);

Více zde (český překlad)

ago 4.11.2008 19:51  735
Ahojte. Potrebujem (v Cecku)otvorit subor vo funkcii, ale tak aby zostal otvoreny aj po jej ukonceni. Proste aby s tym suborom mohli pracovat aj ine funkcie az kym ho nejakou inou funkciou nezatvorim. Mozno pre niekoho lahka otazka, no ja si akosi neviem dat rady :( Dakujem.
decide 23.9.2008 14:34  734
machAno, přesněji, nesaháš na GUI ze dvou vláken?

[ 380 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  

(c) 2001-2011 Lopuch.cz   
Kontakt