Stringhe in C++

di il
3 risposte

Stringhe in C++

Ciao a tutti!! Scusate il disturbo...vorrei fare un albero di stringhe: ho un problema nell'inizializzare una stringa all'interno di una struct ...in debug mi dice che sto violando la memoria...non so dove sbattere la testa...qualcuno può aiutarmi??
Grazie Simo
#include <string.h>

using namespace std

struct nodo {
string s;
struct nodo a*;
}NODO;

typedef struct nodo* tree;

void main()
{
tree Albero;
Albero = (*nodo)malloc(sizeof(NODO));
Albero->s = "RADICE";  // QUA IN DEBUG MI SI INCHIODA PER VIOLAZIONE DI MEMORIA!!!
}

3 Risposte

  • Re: Stringhe in C++

    String è una classe, ed è definita nel file string non in string.h. Dunque devi includere string (#include<string>;).
    A questo punto visto che stai programmando in C++ devi allocare la memoria con la new.
    Quindi:
    
    #include <string>
    
    using namespace std;
    
    struct nodo {
    	string s;
    	struct nodo *a;
    };
    
    typedef struct nodo* tree;
    
    void main()
    {
    	tree Albero;
    	
    	Albero = new nodo[sizeof(nodo)];
    	
    	Albero->s ="RADICE";
    	delete Albero;
    }
    
    cosi dovrebbe andare.
  • Re: Stringhe in C++

    Grazie mille!!
  • Re: Stringhe in C++

    Prego, non c'è di che.
Devi accedere o registrarti per scrivere nel forum
3 risposte