[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