Se in ogni ciclo, ri-inizializzi i = 0, andrai sempre ad assegnare solo i primi 13 elementi dell'array. Tra l'altro perdendo i puntatori agli oggetti che hai creato nei primi tre cicli. Da qui, se provi ad accedere alle posizioni >12 mandi tutto in crash, visto che non si sa a cosa puntanocodice:for(int i=0;i<13;i++){ arrayCarte[i] = new Card(i+1,"C",n+1); n++; } for(int i=0;i<13;i++){ arrayCarte[i] = new Card(i+1,"D",n+1); n++; } for(int i=0;i<13;i++){ arrayCarte[i] = new Card(i+1,"F",n+1); n++; } for(int i=0;i<13;i++){ arrayCarte[i] = new Card(i+1,"P",n+1); n++; }