Curiosità dell'ultima ora :
Ma l'allocazione dinamica è possibile solo nel main e non nei sottoprogrammi?
Perché se io faccio:
MAIN:
codice:
#include <iostream>
#include "swapAndarray.h"
using namespace std;
int main(int argc, char** argv) {
int vettore,r;
LeggiArray(&vettore,&r);
StampaArray(&vettore,&r);
return 0;
}
HEADER
codice:
void LeggiArray(int*,int*);
void StampaArray(int*,int*);
BODY
codice:
#include <iostream>
#include "swapAndarray.h"
using namespace std;
void LeggiArray(int* vettore ,int* r){
cout<<"Quanti elementi si vuole inserire nel vettore?\n";
cin>>*r;
vettore[*r];
for(int i=0;i<*r;i++){
cout<<"inserire l'elemento in posizione "<<i<<endl;
cin>>*(vettore+i);
}
}
void StampaArray(int* vettore,int* r){
for(int i=0;i<*r;i++)
cout<<*(vettore+i)<<endl;
}
Funziona benissimo e sto usando solo dei puntatori (come si fa in C , senza usare il passaggio per riferimento tipico del C + + )
Ma se faccio :
MAIN:
codice:
#include <iostream>
#include "swapAndarray.h"
using namespace std;
int main(int argc, char** argv) {
int vettore,r;
LeggiArray(&vettore,&r);
StampaArray(&vettore,&r);
return 0;
}
HEADER
codice:
void LeggiArray(int*,int*);
void StampaArray(int*,int*);
BODY
codice:
#include <iostream>
#include "swapAndarray.h"
using namespace std;
void LeggiArray(int* vettore ,int* r){
cout<<"Quanti elementi si vuole inserire nel vettore?\n";
cin>>*r;
vettore=new int[*r];
for(int i=0;i<*r;i++){
cout<<"inserire l'elemento in posizione "<<i<<endl;
cin>>*(vettore+i);
}
}
void StampaArray(int* vettore,int* r){
for(int i=0;i<*r;i++)
cout<<*(vettore+i)<<endl;
}
Allora non funziona più poiché stampa 3 elementi a caso nel vettore anziché quelli specificati da tastiera ...
Quindi DEDUCO (poi non so se ho sbagliato io ad usare la new nel sottoprogramma) che non si può usare l'allocazione dinamica nei sottoprogrammi perché l'allocazione dinamica interessa la memoria Heap mentre i sottoprogrammi interessano lo Stack Point Register
Giusto?
Scusatemi se vi chiedo molte cose, ma ne ho bisogno 
P.S.: Ho creato un nuovo messaggio perché non mi permetteva più di modificare il precedente