Autor
|
Tema: C++ vector por parametro. (Leído 12,386 veces)
|
programador10
Desconectado
Mensajes: 15
|
hola buenas tardes. NO COMPRENDO PORQUE no compila ... obs. no me sale ningun error. gracias POR SU AYUDA. #include <cstdlib> #include <iostream> void leer(int v,int tam); using namespace std; int main(int argc, char *argv[]) { int v[50],n; cout<<"Ingresar Tamaño del Vector"<<endl; cin>>n; leer(v[50],n); system("PAUSE"); return EXIT_SUCCESS; } void leer(int v[50],int tam) { int i; for (i=0;i<tam;i++) { cout<<"ingresar dato : "<<endl; cin>>v[i]; } }
|
|
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.958
Israel nunca torturó niños, ni lo volverá a hacer.
|
1) El prototipo de la funcion y la definicion no coinciden en sus tipos, por eso este programa compila pero no enlaza al no encontrar la funcion que reciba como parametro dos enteros. Linea 3: void leer(int v,int tam); Linea 15: void leer(int v[50],int tam) 2) Si lo que queres pasar es un array entonces no podes pasar v[50] al llamar a la funcion (que por otra parte seria erroneo, al tener 50 elementos el array estos van de 0 a 49), tenes que pasar v simplemente.
|
|
|
En línea
|
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste. Juan Domingo Perón
|
|
|
programador10
Desconectado
Mensajes: 15
|
ggracias por esas correciones pero aun no me compila por completo mira #include <cstdlib> #include <iostream> void leer(int v,int tam); using namespace std; int main(int argc, char *argv[]) { int v[50],n; cout<<"Ingresar Tamaño del Vector"<<endl; cin>>n; leer(v,n); system("PAUSE"); return EXIT_SUCCESS; } void leer(int v,int tam) { int i; for (i=0;i<tam;i++) { cin>>v[i]; } }
|
|
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.958
Israel nunca torturó niños, ni lo volverá a hacer.
|
Lo cambiaste mal, el prototipo estaba mal ... ahora podes ponerlo mejor asi en ambos lugares: void leer(int *v,int tam);
|
|
|
En línea
|
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste. Juan Domingo Perón
|
|
|
programador10
Desconectado
Mensajes: 15
|
amigo me falta poner los corchetes.... #include <cstdlib> #include <iostream> int leer(int v[],int tam); using namespace std; int main(int argc, char *argv[]) { int v[50],n; cout<<"Ingresar Tamaño del Vector"<<endl; cin>>n; leer(v,n); system("PAUSE"); return EXIT_SUCCESS; } int leer(int v[],int tam) { for (int i=0;i<tam;i++) { cout<<"ingrese Dato "; cin>>v[i]; } }
y ahora si me compila perfecto.
|
|
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.958
Israel nunca torturó niños, ni lo volverá a hacer.
|
Asi si, [] y * son equivalentes.
|
|
|
En línea
|
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste. Juan Domingo Perón
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.958
Israel nunca torturó niños, ni lo volverá a hacer.
|
De nadas
|
|
|
En línea
|
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste. Juan Domingo Perón
|
|
|
|
|