"l-value" con puntatori e stringhe interne ad una struct

di Anonimizzato25670 il
2 risposte
Salve, mi sto esercitando per un esame universitario su di una lista di tipo coda formate da 2 struct:
struct pqueue
{
	unsigned int priority;
	struct queue *queue;
	struct pqueue *prev;
	struct pqueue *next;
};
{
	char id[N];
	struct queue *prev;
	struct queue *next;
};
Dopo avere implementato le funzioni, esercizio dell'esame, ho pensato ricreare il main per testare il codice. Dopo aver allocato tramite malloc una struct di tipo queue ho tentato di modificare il campo id:
P->queue= P_queue=(struct queue *)malloc(sizeof(struct queue));
P_queue->id = "MARIO";
Quello che volevo capire è il motivo per cui mi dia errore in quanto l'operatore non è l-value e se è corretto scrivere
P_queue->id[N] = "MARIO";
Grazie mille
(Perdonate la mia scarsa precisione, primo post del forum )

2 Risposte

  • Cosa vuoi dire con due = nella prima linea ? Non ha senso

    Per la stringa nessuna delle due va bene, devi usare la funzione strcpy per copiare "MARIO" nella stringa id
  • Grazie mille, era sufficiente sapere della strncpy.
    I due = semplicemente mi servivano per allocare la memoria e salvarla sia in una variabile temporanea sia nel next della queue. Si lo so, un po' da spaghetti code.
Devi accedere o registrarti per scrivere nel forum
2 risposte