C/Visual C - Punteros, ayuda!

 
Vista:

Punteros, ayuda!

Publicado por Nicolas Eliaschev (21 intervenciones) el 27/09/2001 21:32:46
necesito pasar como argumento un puntero a vector...pero tengo un problema, yo creo la funcion
void ordenar (int *vec[]);

y despues la llamo en el main:
ordenar (&vec);

pero me da error cannot convert: int *vec[4]* to int * * //el 4 es un ejemplo
como hago para remediarlo?
vectores se perfectamente...y no se por q no me deja pasar el argumento de puntero a vector, alguien me puede ayudar???
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Punteros, ayuda!

Publicado por kikonmx (30 intervenciones) el 27/09/2001 22:11:58
Si entendí bien tu pregunta, quieres pasar un vector como parámetro a una función no?, si estoy en lo correcto, trata con lo siguiente

int Arreglo[ 4 ];

void ordenar( int * Vector );

y al momento de llamarla

ordenar( &Arreglo[ 0 ] );

lo que pasa es que al declarar la función ordenar, le estás diciendo que le vas a pasar un puntero a punteros, es decir, un arreglo de 2 dimensiones ( por decirlo así )
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Punteros, ayuda!

Publicado por Nicolas Eliaschev (21 intervenciones) el 27/09/2001 22:31:32
Pero como hago para pasar todo el vector entero? sin indice..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Punteros, ayuda!

Publicado por emilio (42 intervenciones) el 28/09/2001 01:32:00
El nombre de un arreglo es un puntero lo que tienes que hacer por ejemplo:

void funcion(int *vector,int len)
{
//aqui puedes hacer esto sin problema:
int i,sum=0;
for (i=0;i<len;i++)
{
sum+=vector[i];
}
printf("sum = %d",sum);
}

void main()
{
int vector[10]={1,2,3,4,5,6,7,8,9,0};
funcion(vector,10);
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Re:

Publicado por manuel (9 intervenciones) el 28/09/2001 18:27:02
Hola Nicolas.
(defines el array) int arrInt[10];
(la funcion ordenar seria asi): int ordenar(int* vecInt);
(pasas el vector a la funcion) ordenar(vecInt);
asi funciona.
saludos
manuel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Punteros, ayuda!

Publicado por Oscar (1 intervención) el 29/09/2001 07:17:11
Tenes que hacer un casting, llamar a la funcion asi ordenar ((int**)&vec).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar