[C con Clase] Problema vectores/array
Pau Manent
pmb.manent en gmail.com
Sab Sep 4 23:07:56 CEST 2010
Hola Jorge,
Yo nunca defino arrays dinamicos porque me traen de cabeza. Lo que yo
hago es definir un array de una dimension suficientemente grande como
para que quepa lo que el usuario quiere poner, y además dejo que el
usuario diga la dimensión del array, siempre por debajo del maximo
establecido. Cuando haya que tratar al array solo lo haremos de (0,0) a
(a,b), donde a y b son las dimensiones que introduce el usuario. a<n, b<m.
Esta forma no es muy eficiente con la memoria pero permite reducir las
operaciones del rpograma. Te dejo el codigo que te propongo.
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
using namespace std;
#define n 10
#define m 10
void visualiza(int a[n][m]){
a[0][1]=a[0][1]+7;
cout << a[0][1] << endl;
}
int main() {
int a=15,b=15;
int vec[n][m];
do{
cout << "Introducir las dimensiones de la matriz : "<<endl;
cin>>a;
cin>>b;
}while(a>10 || b>10);
visualiza(vec);
cout << "valor una vez retornado el vector: " << vec[0][1] << endl;
return 0;
}
Pau
El 04/09/2010 19:40, Jorge Vega Sanchez escribió:
> Sigo rompiendome los cuernos con los dichosos vectores en C++. Pienso que estan definidos de una forma muy muy rara.
>
> Bueno la cosa es que intento definir una matriz de tamaño dinámico, que el usuario introducirá por teclado y posteriormente esta matriz la mando a un procedimiento para hacer unas operaciones sencillas. Total un ejemplito sencillo para trabajar con vectores.
>
> El problema es que me salen errores de compilación pero no consigo solucionarlo. En el procedimiento me sale que las dimensiones del vector no están definidas y esto es sobremanera lo que más me intriga.
>
> Dejo el código de ejempllo:
> #include<stdlib.h>
> #include<stdio.h>
> #include<iostream>
>
> using namespace std;
>
> void visualiza(int a[n][m])
> {
> a[0][1]=a[0][1]+7;
> cout<< a[0][1]<< endl;
> }
>
> int main()
> {
>
> int n,m;
>
> cout<< "Introducir las dimensiones de la matriz :"
>
> n=getchar();
> m=getchar();
>
> int vec[n][m];
>
> visualiza(vec);
>
> cout<< "valor una vez retornado el vector: "<< vec[0][1]<< endl;
>
> return 0;
> }
>
> Gracias de antemano.
>
> Atentamente jorge.
> _______________________________________________
> Lista de correo CconclaseCconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas:http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
>
Más información sobre la lista de distribución Cconclase