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

    puntatore a array di struttura

    ciao
    vorrei passare un array di struttura ad una funzione,il mio problema è che se nei parametri formali dichiaro un puntatore di tipo struttura,questo punta direttamente alla struttura e non all'array.
    come posso far puntare il puntatore alla array anziche dirattamente alla struttura?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Mostra il codice che hai usato, struttura, main, dichiarazione dell'array e funzione ... per parlare di qualcosa di concreto e capirci subito ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    cosi senza usare il puntatore
    codice:
    #include <stdio.h>
    #define DIM_AUTORE 15
    #define DIM_TIT 25
    #define DIM_CANZ 20
    #define NUM_CD 30
    
    struct CD
    {
           char autore[DIM_AUTORE];
           char tit_cd[DIM_TIT];
           char tit_canz[DIM_CANZ][DIM_CANZ];
           int codice;
    };
    void ins_cd(struct CD mieicd[]);
    int pos=0;//il numero del cd
    main()
    {
          struct CD mieicd[NUM_CD];//dichiaro un array di CD
          int scelta;//per il menu
          while(scelta!=5)
          {
                printf("1:Inserimento Di Un Nuovo Cd\n2:Visualizzazione Cd Per Codice\
                        \n3:Visualizzazione Cd Per Autore\n4:Cancellazione cd per codice\
                        \n5:terminare il programma\n");
                scanf("%d",&scelta);
                
                //controllo la scelta
                switch(scelta)
                {
                    case 1: ins_cd(mieicd);
                            break;
                            
                    case 2: //vis_by_codice(mieicd);
                            break;
                            
                    case 3: //vis_by_autore(mieicd);
                            break;
                            
                    case 4: //canc_by_codice(mieicd);
                            break;
                            
                    case 5: break;
                         
                    default: printf("scegliere da 1 a 5\n");
                             break;
                }
          }
    }
    void ins_cd(struct CD mieicd[])
    {
         int i;
         
         printf("inserisci l'autore\n");
         scanf("%s",mieicd[pos].autore);
         printf("inserisci il titolo del cd\n");
         scanf("%s",mieicd[pos].tit_cd);
         printf("l'aute e' %s\n",mieicd[pos].autore);
         for(i=0;i<5;i++)
         {
              printf("inserisci il titolo del %d canzone\n",i);
              scanf("%s",mieicd[pos].tit_canz[i]);
         }
         printf("inserisci il codice numerico del cd\n");
         scanf("%d",&(mieicd[pos].codice));
         pos++;
         return;     
    }
    come posso riempire l'array ma con i puntatori?

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Moderazione

    Linguaggio nel titolo, come da regolamento.

    Aggiungo io.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Va bene

    void ins_cd(struct CD *mieicd)

    ... il resto puo' rimanere cosi' ...

    P.S. A parte la riga

    int scelta=0;//per il menu

    in cui devi inizializzare (con il valore 0) la variabile ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.