Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Da albero binario ad array (C)

    Volevo sapere se qualcuno poteva aiutarmi con questa piccola funzione, dovrei passare gli elementi da un albero binario ad un array, ma non mi funziona... grazie


    codice:
    int  InserisciInArray(PNODO* Radice, char *V , int *i){
    
                                 if( !IsVuoto(Radice) )
                                 {
    
                                 i=InserisciInArray(Radice->sx, V, i); 
                                 strcpy (V[i], Radice->key);
    
                                 i=i+1; 
                                 i=InserisciInArray(Radice->dx,V, i);
                                 }
    
       return i ; 


    Chiamata dal main:
    codice:
    char *V;
    int valarr=0;
    valarr=InserisciInArray( Radice, V, &valarr)  ;
    Ultima modifica di pasquy99; 20-10-2013 a 20:07

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    A parte che V non è un array di stringhe ma solamente un array di char, non è neanche allocato e il puntatore V non punta a nulla ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    quindi come posso gestire array stringhe? ti ringrazio molto per la risposta

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Dato che key sembra un array di char (che copi con strcpy) devi allocare un array di stringhe da passare per puntatore dal main.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    io sto copiando il contenuto (chiave) del nodo dell'albero in array...
    quindi :


    codice:
    intInserisciInArray(PNODO*Radice,char*V ,int*i){

    if(!IsVuoto(Radice))
    {

    i=InserisciInArray(Radice->sx, V, i);
    V[i] = (char*)malloc(strlen(Radice->key)*sizeof(char));
    strcpy (V[i],Radice->key);

    i=i+1;
    i=InserisciInArray(Radice->dx,V, i);
    }

    return i ;



    Chiamata dal main:

    codice:
    char**V[100];
    int valarr=0;
    valarr=InserisciInArray(Radice, V,&valarr);


    perdona la confusione

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    E non hai errori di compilazione?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Si, non riesco ad allocare l'array di stringhe

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Beh, dovrebbe essere

    char *V[100];

    dato che devi usare un array di puntatori semplici, non doppi.
    Ma saresti limitato da 100 elementi mentre tu non sai quanti ce ne sono ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.