Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: fafafa01 en 2 Julio 2016, 07:18 am



Título: definir los argumentos de una función de manera dinamica
Publicado por: fafafa01 en 2 Julio 2016, 07:18 am
hay alguna forma de poder definir los argumentos de una función de manera dinámica como con argc y **argv, de manera que uno guarde la cantidad de parámetros que se ingreso y con la otra la información.saludos.


Título: Re: definir los argumentos de una función de manera dinamica
Publicado por: class_OpenGL en 2 Julio 2016, 07:44 am
Si que hay una manera, pero es muy complicada... lo que tienes que hacer es... lo mismo que en la función main XDD (Es broma lo de difícil). Aquí tienes un ejemplo:

Código
  1. #include <stdio.h>
  2.  
  3. void procesar_argumentos(int num_argumentos, char *argumentos[]);
  4.  
  5. int main() {
  6.    char *argumentos[3] = {"Argumento1", "Argumento2", "Argumento3"};
  7.  
  8.    procesar_argumentos(3, argumentos); // 3 porque es el número de elementos
  9.  
  10.    return 0;
  11. }
  12.  
  13. void procesar_argumentos(int num_argumentos, char *argumentos[]) {
  14.    int i;
  15.  
  16.    for(i = 0; i < num_argumentos; i++)
  17.        fprintf(stdout, "%s\n", argumentos[i]);
  18. }


Título: Re: definir los argumentos de una función de manera dinamica
Publicado por: MAFUS en 2 Julio 2016, 10:22 am
Eso en caso que los argumentos sean del mismo tipo.
Para poder usar argumentos de cualquier tipo se debe usar la libreriat stdargs.