Ciao a tutti,
mi ritrovo a programmare in C++ dopo anni di stop e mi ritrovo faticosamente a rispolverare le poche conoscenze accumulate in passato.
In particolare ho parecchi problemi con la gestione degli array.
Per il calcolo della dimensione dell'array ho trovato sizeof(A)/sizeof(A[0]), ma da diversi problemi. A questo punto non so se sbaglio il passaggio dell'array nella chiamata a funzione o cos'altro!
Vi posto un pò di codice:
codice:
int main (int argc, char * const argv[]) {
int A[5];
cout << "Array inserito:\n";
for (int i=0; i<5;i++){
A[i]=rand();
cout << "\n" << A[i];
}
cout << "\nlunghezza dell'array: " << sizeof(A)/sizeof(A[0]) << "\n";
//A questo punto il programma stampa correttamente 5
HeapSort h;
h.heapsort (A);
for (int j=0; j<sizeof(A)/sizeof(A[0]); j++)
cout << A[j] << "\n";
cout << "Tempo impiegato: " << delta;
system("PAUSE");
return 0;
}
void HeapSort::heapsort(int A[]){
cout << "Array ricevuto lungo " << sizeof(A)/sizeof(A[0]) << ":\n";
for (int i=0; i<5;i++){
cout << "\n" << A[i];
}
//A questo punto viene stampata come dimensione dell'Array 1 (risultato di sizeof(A)=4 / sizeof(A[0])=4)
//Ad ogni modo i valori contenuti nell'array sono corretti
}
Qualcuno sa dirmi cosa sbaglio?
Vi ringrazio!