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

    [c] allocazione memoria

    Buonasera.
    Volevo:
    -leggere dati da un file ("deposito.txt") così composto:
    codice1 numero_codice1
    codice2 numero_codice2
    .. ;
    -inserire i dati in una adeguata struttura.



    codice:
     
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    
    typedef struct{
    	char *code;
    	int num;
    }prodotto;
    
    int main(){
    	prodotto *sp=malloc(5*sizeof(prodotto));
        FILE *fp=fopen("deposito.txt","r");
     	int i,lenght,n=5;
    	char buff[1000],temp[1000];
    	for(i=0;i<n;i++){
    		fgets(buff,sizeof(buff),fp);
    		sscanf(buff,"%s %d",temp,&((sp+i)->num));
    
    		lenght=strlen(temp)+2;
    
    		((sp+i)->code)=(char*)malloc(lenght*sizeof(char));
    		((sp+i)->code)=temp;
    
    	}
    	for(i=0;i<n;i++)
    	printf("\nprodotto: %s , numero:%d\n",(sp+i)->code,(sp+i)->num);
    
    	return 0;
    }
    La funzione che ho implementato, però , inserisce nelle strutture:
    -il codice dell'ultimo elemento della lista,
    -i numeri adeguati.

    Perché?

  2. #2
    sostituisci
    codice:
    (sp+i)->code)=temp;
    con
    codice:
    strcpy((sp+i)->code, temp);

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.