Programma in c??

Pubblicità

toni1705

Nuovo Utente
Messaggi
98
Reazioni
9
Punteggio
28
ho visto questo programma su una slide e non riesco a capire una cosa
Codice:
#include <stdio.h>
#include <stdlib.h>
main()
{ int n,i,max,min;
int *b;
printf("quanti numeri vuoi inserire?: ");
scanf("%d",&n);
b=malloc(n*sizeof(int));
for (i=0;i<n;i++){
    printf("inserire il n.%d: ",i+1);
scanf("%d",&b[I]);}
max=b[0];
min=b[0];
for (i=0;i<n;i++)
    if (b[I]>max)
    max=b[I];
printf("\nvalore massimo:%d",max);
for (i=0;i<n;i++)
    if (b[I]<min)
    min=b[I];
printf("\nvalore minimo:%d",min);
/* stampare il vettore intero*/
printf("\ni numeri del vettore sono");
for (i=0;i<n;i++)
    printf("\nn.%d vale:%d",i+1,b[I]);
free(b);}
il programma inizia con la dichiarazione di un puntatore...
come fa un puntatore a funzionare senza che ci sia un' qualcosa a cui puntare ..
c'è qui è dichiarato solo il puntatore successivamente viene utilizatto come array ( nel caso in cui deve salvare i numeri b[ i ] )
come mai?[/i]
 
Ultima modifica:
Codice:
int *b;                                         //dichiarazione
b=malloc(n*sizeof(int));        //allocazione dell'area di memoria a cui b punta
free(b);                                     //deallocazione dell'area di memoria a cui b punta
 
Quel programma comunque non funzionera' mai (non compila nemmeno)
C e' un linguaggio 'case sensitive', per cui la variabile 'i' e' distinta dalla variable 'I' (minuscola e maiuscola)
Il programma non compila perche' viene usato 'I' (maiuscolo) che non viene mai dichiarato.
 
... è dichiarato solo il puntatore successivamente viene utilizatto come array ...
Queste sono le cose per cui C o lo si ama o lo si odia :)
Per chi vuole ottimizzare l'uso della memoria, e' molto conveniente dichiarare una variabile come un puntatore, e poi utilizzarlo come se fosse un vettore. Il compilatore permette di farlo. Ma fa impazzirfe i puristi della programmazione che preferiscono che le variabili vengano usate SOLO nella maniera in cui vengono dichiarate tipo C#, dove non esiste un generico metodo come il "malloc" per allocare memoria. Usare una variabile come vettore e come puntatore ha i suoi pregi e i suoi difetti. Se si SA cosa si sta facendo, e' conveniente, ma puo' causare seri problemi perche' sono due cose sostanzialmente diverse.
 
Quel programma comunque non funzionera' mai (non compila nemmeno)
C e' un linguaggio 'case sensitive', per cui la variabile 'i' e' distinta dalla variable 'I' (minuscola e maiuscola)
Il programma non compila perche' viene usato 'I' (maiuscolo) che non viene mai dichiarato.
sisi il programma funziona soltato che quando ho ricopiato inizialmente non mi dava l'impostazione del code
ho dovuto fare un casino ho inserito un codice e la i è stata modificata comunque con la i normale (sulla slide ) funziona benissimo
 
Pubblicità
Pubblicità
Indietro
Top