[C con Clase] Array de cadenas de caracteres y paso de parámetros en C.

gmh2000 helder1986 en gmail.com
Vie Dic 5 17:38:00 CET 2008


Hola. Aclaro que los nombres de las funciones y variables NO son las de mi programa. He puesto esos nombres para que lo entedais mejor y que pueda servir para todo el mundo. ¿No es eso lo que se pretende en esta web?

Bien. No existe tal función. En realidad es una cadena de un registro desde donde hago la asignación. Sin más ahí van los trozos de código:

NOTA: he puesto una florecita donde el compilador da el error. Donde pone "error" no da problemas. Eso es para tratar las excepciones en otro momento.



struct strings_list
{
  char (*string_pointers)[40];
  unsigned int number_of_strings;
};

struct strings_list file_names;

void get_file_names(const char *directory, struct strings_list *file_names)
{
	struct dirent *d;
	struct stat buf;
	DIR *dir;	
	file_names->number_of_strings = 0;
	if ((dir=opendir(directory)) == NULL)
	{
		/* error */
	}
	 
	while ((d=readdir(dir)) != NULL)
	{	
		/* The above line avoid infinite loop */
		if (strcmp(d->d_name,".")!=0 && strcmp(d->d_name, "..")!=0) 
		{
		  file_names->string_pointers = d->d_name; /*@->-*/	
		  if (stat(file_names->string_pointers, &buf) == -1) /*@->-*/
		  {
			/* error */
		  }
		  file_names->number_of_strings++;
		  file_names->string_pointers++;
		}
	}
	closedir(dir);	
}



Puedo poner el código completo si quereis, pero creo que todo quedaría menos claro. Pero si lo preferís no teneis más que decírmelo.

Agradezco mucho las respuestas. Muy buen día ;)


Más información sobre la lista de distribución Cconclase