|
|||||||
|
|
|
![]() |
|
|
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 13: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: 21:48.



















