Visualizzazione dei risultati da 1 a 3 su 3

Discussione: C] lvalue

  1. #1
    Utente di HTML.it L'avatar di fausto
    Registrato dal
    Jun 2002
    Messaggi
    294

    C] lvalue

    Che vuol dire il messaggio
    "invalid lvalue in assignment"?
    me lo dà il compilatore tentando un assegnemento.


    typedef ... Node
    typedef struct{
    int i;
    Node *nodes1;
    }Struct1;

    typedef struct {
    int j;
    Node *nodes2;
    }Struct2;
    main()
    ............
    Struct1 *struct1;
    Struct2 *struct2;
    ....
    fscanf(...dim1, dim2....);

    struct1=(Struct1 *)malloc(dim1*sizeof(Struct1));
    struct2=(Struct2 *)malloc(dim2*sizeof(Struct2));
    struct1->nodes1 = (Node *)malloc(stuct1->i*sizeof(Node));
    struct2->node2= (Node *)malloc(struct2->j *sizeof(Node *));/*solo alloco lo spazio per i puntatori, non ho bisogno della mem per i nodi! */

    fscanf(.......dati che assegno a struct1 struct2 struct3);

    ora vorrei far puntare i puntatori nodes2 di struct2 ad alcuni degli oggetti puntati dai nodes1 di struct 1;
    struct2->nodes2 = struct1->nodes1; /*il primo*/
    /*ora viene l'errore*/
    struct2->nodes2+3 = sctruct1->nodes1+4
    /*non è proprio così il codice! ci sono degli indici, è per semplificare.
    quello che vorrei fare è assegmare al terzo elemento (quarto!)del vettore di puntatori di struct2, l'indirizzo contenuto nel quarto elemento del vettore di puntatori di struct2*/

    é un po' confuso, me ne rendo conto.
    Ma io sto impazzendo!!!

    ciao

  2. #2

    Re: C] lvalue

    Originariamente inviato da fausto
    Che vuol dire il messaggio
    "invalid lvalue in assignment"?
    me lo dà il compilatore tentando un assegnemento.
    codice:
    struct2->nodes2+3 = sctruct1->nodes1+4;
    Significa che hai fatto una castronata enorme.
    La riga di codice sopra riportata equivale alla seguente

    codice:
      1 = 2;
    che è palesemente sbagliata.

    lvalue = left value, ed è l'espressione o l'identificatore che sta alla sinistra di un operazione di assegnazione e pertanto deve essere modificabile.
    - "Boy, the food at this place is really terrible."
    - "Yeah, I know, and such ... small portions."

  3. #3
    Utente di HTML.it L'avatar di fausto
    Registrato dal
    Jun 2002
    Messaggi
    294
    ok.
    alla fine ho risolto, ma in un altro modo.

    però non ho capito una cosa.
    Semplifichiamo.
    Ho un vettore di puntatori, i quali puntano a degli oggetti "oggetti_type."
    Poi ho un altro vettore i cui componenti dovrebbero riferire solo alcuni degli aggetti "oggetti_type" puntati dal primo vettore.
    Come si fa?

    Il concetto è questo.
    Che mi dite?


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.