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

    [C] Problema passagio array to funzione

    Mi sapete dire cosa non funziona in questo programmino?.... Quando l'eseguo e inserisco il secondo valore nell'array mi viene un errore di windows che mi dice "la memoria non può essere write" o qualcosa del genere.... Se avete anche qualche consiglio da darmi ben venga.... Inoltre, visto che ci sono, secondo voi è possibile preparare un esame di fondamenti di informatica sul c in due settimane, o poco più?.....

    #include<stdio.h>
    #include <stdlib.h>

    void scrittura(int *punt);
    void lettura(int *punt);

    main(){
    while(1){
    int scelta;
    int dati[4];
    printf("Cosa vuoi fare?\n");
    printf("1 - Immetti dati\n");
    printf("2 - Leggi dati\n");
    scanf("%d",&scelta);

    printf("\n\n");
    if (scelta==1) scrittura(dati);
    if (scelta==2) lettura(dati);

    }
    }

    void scrittura(int *punt){
    int i;
    for(i=0;i<4;i++){
    punt=punt+i;
    printf("\nImmetti il %d valore",i+1);
    scanf("%d",*punt);
    }
    }
    void lettura(int *punt){
    int i;
    for(i=0;i<4;i++){
    punt=punt+i;
    printf("%d \t",*punt);

    }
    }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Il codice corretto delle ultime due funzioni e'

    codice:
    void scrittura(int *punt)
    {
    	int i;
    	for(i=0;i<4;i++)
    	{
    		printf("\nImmetti il %d valore ",i+1);
    		scanf("%d",(punt+i));
    	}
    }
    
    void lettura(int *punt)
    {
    	int i;
    	for(i=0;i<4;i++)
    		printf("%d \t", *(punt+i));
    }
    ... capirai da solo il perche' ...

    Circa la tua domanda sulla preparazione dell'esame, dipende dagli argomenti presenti nel programma didattico ...

  3. #3
    Che cavolata, il bello è che ci sarò stato mezz'ora per cercare di capire l'errore prima della risposta... Ti ringrazio, soltanto non capisco una cosa: l'errore mio è che allo scanf non passsavo un indirizzo.... però provando a fare, ad esempio:

    int valore;
    scanf("%d", valore);

    il risultato è che non mi scrive nulla ma non mi dà nemmeno l'errore di windows che mi dava prima....

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Perche' "casualmente" il contenuto della variabile corrisponde ad un indirizzo valido ma l'errore esiste comunque perche' il dato inserito NON andra' all'interno di tale variabile.

    E comunque, le variabili devono essere inizializzate. Per l'esattezza dovresti scrivere

    int valore = 0;
    scanf("%d", valore);

    e noteresti il problema.

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.