Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    14

    [c]problema con il passaggio per riferimento

    codice:
    #include <stdio.h>
    #include <stdlib.h> 
    #include <string.h> 
    #define MAX 64 
    #define DIM 10 
    int inserimento( char *parole [] [MAX]); 
    void scritturafile (char* parole [][MAX],int riemp); 
     int main() 
    {  char parole [DIM][MAX]; 
        int riemp;  
        riemp=inserimento(&parole) ; 
        scritturafile(&parole,riemp);  
    system("pause");	 
    } 
    int inserimento( char * parole  [] [MAX] ) 
    {int i,num; 
    printf("quante persone vuoi inserire"); 
    scanf("%d",&num); 
    for(i=0;i<num;i++) {printf("inserisci persona"); 	
    scanf("%s",*parole[i][MAX]); }
     return num;  
    } 
    void scritturafile (char *parole [][MAX],int riemp) 
    
    {
    FILE *fp1;       int i;       fp1 = fopen("ciao.txt", "w");  for(i=0;i<riemp;i++)  
     {
    fprintf(fp1,"%s",*parole[i]);  
    fclose(fp1);     
    } 
    }
    mi da questi due warning
    [Warning] passing arg 1 of `inserimento' from incompatible pointer type
    [Warning] passing arg 1 of `scritturafile' from incompatible pointer type

  2. #2
    Credo che il problema stia nel fatto che così:
    codice:
    char *parole [] [MAX]
    dichiari una matrice di char *

    mentre così:
    codice:
    char parole [DIM][MAX];
    int riemp;  
    riemp=inserimento(&parole) ;
    scritturafile(&parole,riemp);
    dichiari un matrice di char e passi alla funzione inserimento e scritturafile un puntatore ad una matrice di char.
    --
    Salvatore.

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.