Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    43

    array di stringhe in C

    salve...dovrei implementare un array di stringhe in C!

    come faccio? ho pensato di definire una struttura formata da una stringa e poi un puntatore a tale struttura che alloco dinamicamente...

    codice:
    typedef struct _risorsa
    {
        char                risorsa[20];
    }tipo_risorsa;
    
    tipo_risorsa  *risorsa;
    
    ...
    
    r = malloc(n_ris*sizeof(tipo_risorsa));

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Questo e' un vettore di 10 puntatori a stringa

    codice:
    char *stringhe[10];
    Ogni puntatore ti puo' servire per allocare una stringa ... ad esempio per allocare le 10 stringhe da 100 caratteri ciascuna ...

    codice:
    for(int i=0; i<10; i++)
      stringhe[i] = (char *)malloc(100);
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    43
    si ho capito..ma io nn so a priori quante stringhe devo allocare mentre so di quanti caratteri devono essere formate le stringhe. Posso usare il doppio puntatore?

    codice:
    char **stringhe;
    
    poi se devo allocare 4 stringhe, tutte da 20 caratteri:
    
    for(int i=0;i<4;i++)
    
    stringhe[i] = (char*)malloc(20) ;
    Ma quando poi devo inserire la stringa come faccio??

    codice:
    for(i=0;i<n_ris;i++)
        {
               printf("Inserisci la %d risorsa:",i+1);scanf("%s",&stringa[i]);
        }
    ma nn funge :-(

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Il doppio puntatore va bene, ma devi allocare dinamicamente il numero delle stringhe ...

    char **stringhe;

    stringhe = (char **)malloc(4*sizeof(char *));
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    148
    ecco dove sbagli:
    codice:
    for(i=0;i<n_ris;i++)
        {
               printf("Inserisci la %d risorsa:",i+1);scanf("%s", stringa[i]); /*non c'è & !*/
        }
    ma nn funge :-(
    Nella scanf non devi mettere l'& perchè una stringa è già un puntatore.

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