Torna indietro   Hardware Upgrade Forum > Software > Programmazione

WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro
Con Midnight, Blizzard tenta il colpaccio: il player housing sbarca finalmente su Azeroth insieme a una Quel'Thalas ricostruita da zero. Tra il dramma della famiglia Ventolesto e il nuovo Prey System, ecco com'è la nuova espansione di World of Warcraft
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Nuova frontiera per i robot tagliaerba, con Ecovacs GOAT O1200 LiDAR Pro che riconosce l'ambiente in maniera perfetta, grazie a due sensori LiDAR, e dopo la falciatura può anche rifinire il bordo con il tagliabordi a filo integrato
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere?
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere?
Equilibrio e potenza definiscono il Samsung Galaxy S26+, un flagship che sfida la variante Ultra e la fascia alta del mercato con il primo processore mobile a 2nm. Pur mantenendo l'hardware fotografico precedente, lo smartphone brilla per un display QHD+ da 6,7 pollici d'eccellenza, privo però del trattamento antiriflesso dell'Ultra, e per prestazioni molto elevate. Completano il quadro la ricarica wireless a 20W e, soprattutto, un supporto software settennale
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 25-01-2008, 15:13   #1
Fabietto206
Senior Member
 
L'Avatar di Fabietto206
 
Iscritto dal: Jul 2007
Città: Cassano M.go (Va)
Messaggi: 631
[C] Qualcuno sa risolvere l'errore?

In qst funzione:
Codice:
/*funzione chiamata dalla inserisci(char*u)*/
nodo*insert_in_albero(nodo*p,char*u){
        int x=strlen(u);                      
        if (p==NULL){
      /*riservo uno spazio per nodo*/                
        p=(nodo*)malloc( sizeof(nodo));
        if(!p){
          printf("Errore di allocazione\n");
          }
                        
        else{
          p->parola= strdup(u); /*copia la stringa u nella sringa p->parola*/
          p->lung_parola=strlen(p->parola); /*prendi la lunghezza della stringa
                                                        p->parola e metti nel campo p->lung_parola*/ 
          p->left=p->right=NULL;
          q=p;
          return p;
        }
        }
              if(strcmp(u,p->parola)<0){            /*se u è lessicograficamente minore di p->parola 
                                                               inseriscilo a sinistra*/
               p->left=insert_in_albero(p->left,u);
               return p;
              }
                                                                                         
                   else if(strcmp(u,p->parola)>0){ /*altrimenti inseriscilo a destra*/
                                   
                                    p->right=insert_in_albero(p->right,u);
                                    return p;
                                                 }                   
                        else {
                                  printf(" %s è una parola già inserita\n",p->parola);
                                   system("PAUSE");
                                   p->parola=u;
                                 return p;
                               }
                      }

mi da un errore in qst riga:
p->parola= strdup(u);/*copia la stringa u nella sringa p->parola*/
dicendomi: [Warning] assignment makes pointer from integer without a cast

come risolvo?

Ultima modifica di Fabietto206 : 27-01-2008 alle 14:35.
Fabietto206 è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2008, 15:23   #2
andrea0032
Member
 
Iscritto dal: Oct 2004
Messaggi: 98
parola l'hai dichiarato come char* ?
la stringa u da dove l'acquisisci?
andrea0032 è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2008, 18:54   #3
Fabietto206
Senior Member
 
L'Avatar di Fabietto206
 
Iscritto dal: Jul 2007
Città: Cassano M.go (Va)
Messaggi: 631
Quote:
Originariamente inviato da andrea0032 Guarda i messaggi
parola l'hai dichiarato come char* ?
la stringa u da dove l'acquisisci?
Si, parola è di tipo char*.
u è un parametro della funzione invece!!

Cmq la stringa la inserisco cn la seguente funzione:
Codice:
/*funzione di inserzione di una parola nell'albero*/
void inserisci(char*u){
    q=insert_in_albero(q,u);
    
     }

Ultima modifica di Fabietto206 : 27-01-2008 alle 14:32.
Fabietto206 è offline   Rispondi citando il messaggio o parte di esso
Old 27-01-2008, 14:36   #4
Fabietto206
Senior Member
 
L'Avatar di Fabietto206
 
Iscritto dal: Jul 2007
Città: Cassano M.go (Va)
Messaggi: 631
Nessuno sa aiutarmi?
Fabietto206 è offline   Rispondi citando il messaggio o parte di esso
Old 27-01-2008, 16:08   #5
k0nt3
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 7262
prova a usare strcpy o ancora meglio strncpy specificando un limite massimo di caratteri da copiare che dipende dallo spazio che hai allocato per la variabile in cui copi la stringa.

Ultima modifica di k0nt3 : 27-01-2008 alle 16:16.
k0nt3 è offline   Rispondi citando il messaggio o parte di esso
Old 27-01-2008, 16:29   #6
Fabietto206
Senior Member
 
L'Avatar di Fabietto206
 
Iscritto dal: Jul 2007
Città: Cassano M.go (Va)
Messaggi: 631
Quote:
Originariamente inviato da k0nt3 Guarda i messaggi
prova a usare strcpy o ancora meglio strncpy specificando un limite massimo di caratteri da copiare che dipende dallo spazio che hai allocato per la variabile in cui copi la stringa.
Nn riesco a capire cs vuoi dire!!
Fabietto206 è offline   Rispondi citando il messaggio o parte di esso
Old 27-01-2008, 16:38   #7
k0nt3
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 7262
Quote:
Originariamente inviato da Fabietto206 Guarda i messaggi
Nn riesco a capire cs vuoi dire!!
strcpy copia il contenuto di una stringa in un'altra stringa. la sua signature è: char *strcpy(char *destination, const char *source)

ora.. ci sono dei problemi se la stringa sorgente è più grande della memoria allocata per la stringa destinazione, quindi è meglio usare strncpy: char *strncpy(char *destination, const char *source, size_t n);
dove "n" è il numero massimo di caratteri da copiare.
ma tu non allochi memoria per la variabile parola vero?
k0nt3 è offline   Rispondi citando il messaggio o parte di esso
Old 27-01-2008, 20:46   #8
Fabietto206
Senior Member
 
L'Avatar di Fabietto206
 
Iscritto dal: Jul 2007
Città: Cassano M.go (Va)
Messaggi: 631
Quote:
Originariamente inviato da k0nt3 Guarda i messaggi
strcpy copia il contenuto di una stringa in un'altra stringa. la sua signature è: char *strcpy(char *destination, const char *source)

ora.. ci sono dei problemi se la stringa sorgente è più grande della memoria allocata per la stringa destinazione, quindi è meglio usare strncpy: char *strncpy(char *destination, const char *source, size_t n);
dove "n" è il numero massimo di caratteri da copiare.
ma tu non allochi memoria per la variabile parola vero?
No, nn la alloco la memoria x la variabile parola
Fabietto206 è offline   Rispondi citando il messaggio o parte di esso
Old 28-01-2008, 10:50   #9
k0nt3
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 7262
Quote:
Originariamente inviato da Fabietto206 Guarda i messaggi
mi da un errore in qst riga:
p->parola= strdup(u);/*copia la stringa u nella sringa p->parola*/
dicendomi: [Warning] assignment makes pointer from integer without a cast

come risolvo?
ah che stupido ho capito adesso qual'è il problema.
dichiara la struct in maniera simile a questa:
Codice:
typedef struct nodo
{
    char* parola;
    int lung_parola;
    struct nodo *left, *right;
} nodo;
k0nt3 è offline   Rispondi citando il messaggio o parte di esso
Old 28-01-2008, 12:00   #10
Fabietto206
Senior Member
 
L'Avatar di Fabietto206
 
Iscritto dal: Jul 2007
Città: Cassano M.go (Va)
Messaggi: 631
Quote:
Originariamente inviato da k0nt3 Guarda i messaggi
ah che stupido ho capito adesso qual'è il problema.
dichiara la struct in maniera simile a questa:
Codice:
typedef struct nodo
{
    char* parola;
    int lung_parola;
    struct nodo *left, *right;
} nodo;
è già dikiarato così....se vuoi ti posso mandare il codice così vedi x bene...
Fabietto206 è offline   Rispondi citando il messaggio o parte di esso
Old 28-01-2008, 12:01   #11
k0nt3
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 7262
Quote:
Originariamente inviato da Fabietto206 Guarda i messaggi
è già dikiarato così....se vuoi ti posso mandare il codice così vedi x bene...
sicuro di avere messo typedef struct nodo all'inizio e poi nodo; alla fine? servono tutti e due
k0nt3 è offline   Rispondi citando il messaggio o parte di esso
Old 28-01-2008, 13:37   #12
Fabietto206
Senior Member
 
L'Avatar di Fabietto206
 
Iscritto dal: Jul 2007
Città: Cassano M.go (Va)
Messaggi: 631
Ho fatto così:
Codice:
/*variabili globali */

typedef struct nodo_albero nodo;

    nodo*q=NULL;
   
    nodo*t=NULL;
   
    char *s;
     
char nom[ARRASIZE];

FILE* fp;
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  @      INIZIO FILE .h               @
  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/

/*struttura di un nodo dell'albero*/
struct nodo_albero{
       char*parola;
       int lung_parola;
       struct nodo_albero*left;
       struct nodo_albero*right;
       
       };
Fabietto206 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro WoW: Midnight, Blizzard mette il primo, storico ...
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato Ecovacs Goat O1200 LiDAR Pro: la prova del robot...
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere? Recensione Samsung Galaxy S26+: sfida l'Ultra, m...
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti Zeekr X e 7X provate: prezzi, autonomia fino a 6...
Marathon: arriva il Fortnite hardcore Marathon: arriva il Fortnite hardcore
TikTok punta tutto sull'Europa: un milia...
OnePlus Nord 6 ufficiale: arriva con una...
Google lancia di nascosto un'app AI che ...
Sony lancia The Playerbase per inserire ...
WhatsApp si aggiorna con una nuova app c...
Windows 11 23H2, ricerca nel menu Start ...
Google Chrome introduce il layout vertic...
Artemis II: per la prima volta degli ast...
Battery swap e flotte smart: così nasce ...
Apple affronta un dilemma con il MacBook...
ECOVACS X11 OMNICYCLONE: 19.500 Pa, moci...
ll nuovo HONOR 600 Lite 5G arriva in Ita...
Kindle, addio allo store sui vecchi e-re...
DJI Flip Combo Fly More a 599€ invece di...
Addio cavi e adattatori multipli: Techly...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 11:55.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v