Mi spiegate perchè questo codice è errato (per comodità metto solo i punti salienti del main e della function):
#include <iostream>
using namespace std;
void function (int *A, int dim);
main(){
int *A;
*allocazione dinamica e scrittura array a*
function(a, dim)
........
}
void function (int *A, int dim){
int *b;
*allocazione dinamica e scrittura array b*
a=b;
}
Quando vado a stampare l'array a nel main dopo il richiamo della function, mi viene un array assurdo, perché? Dov'è l'errore?
Ps: per rimediare ho creato un tipo
arr che è un puntatore di interi (
typedef int *arr), dichiarando a e b come tipi arr e non puntatori ad int, ed ho cambiato l'header della function in "
void function (arr &a, int dim)", ma mi sembra un modo troppo astroso e macchinoso di risolvere il problema :/