introducir valor a funccion ( char * x [] )

Iniciado por 70N1, 23 Septiembre 2014, 14:29 PM

0 Miembros y 1 Visitante están viendo este tema.

70N1

esta es la funcction:


static int inject(char* argv[]){

}


Como podria llamarla desde el main?
70N1

eferion

#1

int main( int argc, char** argv )
{
 inject( argv );
}


Edito: Eso sí, si la función no se encuentra en el mismo fichero que el main recuerda añadir el include correspondiente.

70N1

Pero como inicializo argv ?

tengo

long num; ///con un numero de 4 o 5 digitos
como aria un:
inject(num);

70N1

eferion

en tu caso, num es de tipo long... e inject requiere un puntero doble a tipo char. Son cosas diferentes.

En el ejemplo que te he pasado, argv es un dato que te ofrece el propio main y contiene la lista de parámetros con los que se ha ejecutado la aplicación.

70N1

No se puede convertir un long a puntero doble char?.
70N1

eferion

¿Y para qué ibas a hacer eso?

* Un puntero doble a char es un vector de cadenas de caracteres
* Las cadenas de caracteres tienen peculiaridades... como que terminan con el carácter nulo.
* Los char tienen un tamaño de un byte.
* El tamaño de long es variable, lo habitual es que sean 4 u 8 bytes.

Pero eso si, puedes hacer la conversión perfectamente... otra cosa es que luego el programa falle por todos lados:


long num;
long* ptrnum = #
inject( (char**)&ptrnum );


Pero ya te digo que no tiene sentido.

70N1

Diosss. Alelulla una solucion... por fin.

Gracias tio. muchas gracias
70N1