Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: pointer in struct!?!de ce nu merge?  (Citit de 2014 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
Mikeys
Strain


Karma: 2
Deconectat Deconectat

Mesaje: 12



Vezi Profilul
« : Noiembrie 30, 2008, 21:01:10 »

Urmatorul cod imi da un sir impresionant de erori:
Cod:
struct rAnd{ char *content=new char[202]; int lg,nrpag; }ln[202];
   Brick wall , sunt destul de foarte sigur ca este de la faptul ca am declarat in interiorul lui struct un pointer (char *), de ce nu merge?pot sa-l fac sa mearga?cum!?!(nu vreau sa declar pur si simplu char content[202]; ).Multumesc anticipat! Smile
« Ultima modificare: Noiembrie 30, 2008, 21:09:14 de către Mihai Tiganus » Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #1 : Noiembrie 30, 2008, 21:03:49 »

Nu ai voie sa initializezi o variabila in interiorul structului.
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
Mikeys
Strain


Karma: 2
Deconectat Deconectat

Mesaje: 12



Vezi Profilul
« Răspunde #2 : Noiembrie 30, 2008, 21:12:11 »

Multumesc mult!incerc pe o alta cale, am sperat si eu sa gasesc o cale sa declar pointerul ala, dar daca nu se poate nu se poate...  Smile
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #3 : Noiembrie 30, 2008, 21:18:43 »

Daca scrii in C++ poti sa faci asa:

Cod:
struct rAnd {
    char* content;
    int lg, nrpag;
    rAnd() {
        content = new char[202];
    }
} ln[202];
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
Mikeys
Strain


Karma: 2
Deconectat Deconectat

Mesaje: 12



Vezi Profilul
« Răspunde #4 : Decembrie 02, 2008, 08:38:10 »

da..merge si asa multumesc!..am mai gasit o metoda care era banala dar nu mi-a tercut prin minte..dupa ce am declarat pointer char * in struct, in afara am initializat pe rand pentru fiecare ln..., dar e mai simplu cum ai scris  Very Happy
Memorat
k_ounu_eddy
Vorbaret
****

Karma: -104
Deconectat Deconectat

Mesaje: 161



Vezi Profilul
« Răspunde #5 : Decembrie 02, 2008, 17:56:34 »

Mai corect ar fi asa:

Cod:
struct rAnd {
    char* content;
    int lg, nrpag;
    rAnd() {
        content = new char[202];
    }
    ~rAnd()
    {delete [] content;}
} ln[202];

rAnd e destrcutorul structurei rAnd.De asemenea trebuie sa stii ca atunci cand definesti functiile in interiorul unei structuri/clase ,ea este implicit inline.
Memorat
svalentin
Nu mai tace
*****

Karma: 88
Deconectat Deconectat

Mesaje: 704



Vezi Profilul
« Răspunde #6 : Decembrie 04, 2008, 11:47:51 »

Are dreptate eddy, trebuie creeat si acel deconstructor care sa dezaloce memoria alocata cu new. Altfel programul o sa aibe memory leaks. Desigur, daca folosesti structura global nu conteaza acest lucru.

Ca fun fact: structurile in C++ sunt clase, cu diferenta ca un membru este default public, nu private.
« Ultima modificare: Decembrie 04, 2008, 11:54:20 de către Valentin Stanciu » Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines