Salve a tutti, vorrei allocare dinamicamente una matrice il più semplicemente possibile!
La traccia mi dice di allocare dinamicamente due matrici, di permettere l'inserimento dei numeri interi, di calcolare la media delle diagonali principali e secondarie, e di allocare dinamicamente una matrice C ottenuta dal prodotto righe per colonne di A B.
Le matrici A B hanno entrambe dimensione N=20
Ecco il codice relativo esclusivamente all'allocazione
codice:
#include <iostream>
#include <stdlib.h>
#define N 20;
using namespace std;
int main() {
int* matriceA = new int[N][N]; 1
int* matriceB = new int[N][N]; 2
int* matriceC = new int[N][N]; 3
}
Eseguendo il codice il compilatore mi da degli errori strani:
in particolare mi dice che su ogni rigo di allocazione (1,2,3)
Codice PHP:
Errori
1>.\main.cpp(15) : error C2143: errore di sintassi: ')' mancante prima di ';'
1>.\main.cpp(15) : error C2143: errore di sintassi: ']' mancante prima di ')'
1>.\main.cpp(15) : error C2059: errore di sintassi: ')'
1>.\main.cpp(15) : error C2143: errore di sintassi: ';' mancante prima di ']'
1>.\main.cpp(15) : error C2143: errore di sintassi: ';' mancante prima di ']'
Ovviamente ripetuti per ogni riga.
Nella mia logica non ho fatto altro che inizializzare un puntatore int* matriceA al primo elemento della matrice [0][0] che ho allocato dinamicamente.
Perché ho gli errori?
Successivamente ho provato a sostituire quel N con 20
Ora per ogni riga (1 2 3) ho questo errore
Codice PHP:
Errore
1>.\main.cpp(14) : error C2440: 'inizializzazione': impossibile convertire da 'int (*)[20]' a 'int *'
1> I tipi a cui si punta sono privi di relazioni. La conversione richiede reinterpret_cast, cast di tipo C o cast di tipo funzione
Come mai?
Come si allora la memoria correttamente?