|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Feb 2010
Messaggi: 35
|
[C++] passaggio di array dinamici a function
Buongiorno a tutti,
ho difficoltà con il passaggio di una matrice allocata dinamicamente ad una semplice function che per il momento si limita a stampare a schermo il contenuto della matrice. Nel main ho allocato dinamicamente l'array, ma gli errori di compilazione saltano fuori nella function, di cui vi allego il semplice listato: Codice:
void stampa(int matrice[][],int n, int m) { int i, j; for(i=0;i<n;i++) for(j=0;j<m;j++) cout << matrice[i][j] << endl; } Grazie mille intanto e buona giornata! Ultima modifica di Kesslers : 03-05-2010 alle 12:23. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Mar 2009
Messaggi: 753
|
però è meglio che posti anche gli errori, così è più facile aiutarti.
non è che è un problema su come passi la matrice? Io farei così con N definito: Codice:
void stampa(int matrice[][N],int n, int m) |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Feb 2010
Messaggi: 35
|
è vero..riporto il listato completo:
Codice:
#include<iostream> using namespace std; void stampa(int matrice[][], int n, int m); int main(int argc, char* argv[]) { int n, m, i, j; cout << "No. of rows:" << endl; cin >> n; cout << "No. of columns:" << endl; cin >> m; int** p = NULL; p = new int*[n]; for(i=0;i<n;i++) p[i] = new int[m]; int a = 0; for(i=0;i<n;i++) for(j=0;j<m;j++) p[i][j] = a++; stampa(p,n,m); for(i=0;i<n;i++) delete((int*)p[i]); delete [] p; p = NULL; return 0; } void stampa(int matrice[][],int n, int m) { int i, j; for(i=0;i<n;i++) for(j=0;j<m;j++) cout << matrice[i][j] << endl; } Compiling... main.cpp C:\array\main.cpp(4) : error C2087: '<Unknown>' : missing subscript C:\array\main.cpp(27) : error C2664: 'stampa' : cannot convert parameter 1 from 'int ** ' to 'int [][1]' Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast C:\array\main.cpp(38) : error C2087: '<Unknown>' : missing subscript Error executing cl.exe. main.obj - 3 error(s), 0 warning(s) Grazie di nuovo! |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
cannot convert parameter 1 from 'int ** ' to 'int [][1]'
Quindi usa int ** al posto di int [][] |
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: Feb 2010
Messaggi: 35
|
Wow grandiosi, funziona! Era un problema di puntatori. Grazie mille!!
Ciao ciao. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:58.