Ver Mensaje Individual
  #3 (permalink)  
Antiguo 14/07/2006, 18:05
pitukilloloco
 
Fecha de Ingreso: mayo-2006
Mensajes: 40
Antigüedad: 18 años, 6 meses
Puntos: 0
La declaracion char **argv define un apuntador a un apuntador a un caracter; generalmente este caracter es el comienzo de una cadena, por lo que esta declaracion seria un apuntador a una cadena. Por otra parte, char *argv[4] define un arreglo de cuatro apuntadores a caracteres (o a cadenas). Si tu quieres asignarle algo a la variable argv, tiene que ser un apuntador a un caracter o a una cadena ya definida en el programa. Por ejemplo
Código:
char **argv;
char cadena[] = "una cadena", *p = cadena;

argv = &p;
printf ("%s\n", *argv);
o
Código:
char *argv[4];
char cadena[] = "una cadena";

argv[2] = &cadena;
printf ("%s\n", argv[2]);
Puedes definir un arreglo de cadenas e inicializarlo sin especificar su dimension como en
Código:
char *argv[] = {
   "Primer cadena",
   "Segunda cadena",
   "Tercer cadena",
   "Cuarta cadena",
};
int i;

for (i = 0; i < sizeof (argv) / sizeof (char *); i++)
   printf ("%s\n", argv[i]);
Pero todo es con caracteres o cadenas de caracteres. Asi que lo que mencionas de asignarle valores enteros a argv no tiene sentido.