Visualizzazione dei risultati da 1 a 3 su 3

Discussione: [C] lettura di char *

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2011
    Messaggi
    80

    [C] lettura di char *

    Ciao a tutti. Devo inserire in una lista record di questo tipo:

    codice:
    struct record 
    {
    	char *nome;
    	char *cognome;
    	int age;
    	struct record *next;
    };
    ma ho problemi nello scandire l'input. Questa è la mia main:
    codice:
    int main(int argc, char *argv[])
    {
    	if(argc !=1)
    	{
    		fprintf(stderr, "Usage: %s [<file] [>file]\n", argv[0]);
    		exit(EXIT_FAILURE);
    	}
    	int n;
    	char *name=NULL, *sname=NULL;
    	struct record *r=NULL; //lista vuota
    	
    	printf ("\nInserire nome cognome e età: ");
    	scanf("%s", name);
    	scanf("%s", sname);
    	scanf("%d", &n);
    		
            fprintf(stdout, "%s", name);
    	inserisci_record(&r,name,sname,n);
    	
    	stampa_lista(r);	
    	
    	return(EXIT_SUCCESS);	
    
    }
    credo che sia la scanf che non va,perchè la fprintf che segue mi dà null..

  2. #2
    Stai cercando di leggere dei dati in un puntatore che non punta a niente, sfido che non funziona... prima di leggere con la scanf devi allocare la memoria in cui questa andrà a scrivere, puoi o fare dei buffer a dimensione fissata all'interno della struct record, oppure usare l'allocazione dinamica.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2011
    Messaggi
    80
    ah ecco l'allocazione l'ho fatta dopo ecco perchè non va!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.