Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/12/2012, 12:47
Avatar de guzzano
guzzano
 
Fecha de Ingreso: julio-2010
Ubicación: Isla de Margarita
Mensajes: 162
Antigüedad: 14 años, 5 meses
Puntos: 13
Agregar más espacio a un char

Buenos días. Necesito ayuda, tengo un CHAR la cual tengo que abrirle dependiendo de las necesidades más espacio con memoria dinamica, el problema es que no funciona. Solo me almacena el último dato.

Código C:
Ver original
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <sys/types.h>
  4. #include <dirent.h>
  5. #include <string.h>
  6.  
  7. #define PATH_PORTS "/usr/ports/"
  8.  
  9. int main(int argc, char *argv[]) {
  10.     DIR* PORTS_DIRECTORY;
  11.         struct dirent *PORTS_FILES;
  12.        
  13.         char* PORTS;
  14.         int PORTS_SIZE = 0;
  15.  
  16.         if ((PORTS_DIRECTORY = opendir(PATH_PORTS)) != NULL) {
  17.                 while ((PORTS_FILES = readdir(PORTS_DIRECTORY)) != NULL) {
  18.                         if (*PORTS_FILES->d_name == '.') {
  19.                                 continue; }
  20.  
  21.                         PORTS = malloc((strlen(PORTS_FILES->d_name)+PORTS_SIZE)*sizeof(char)); // I need add in the array more space, but only add the last date from PORTS_FILES->d_name
  22.                         PORTS_SIZE = strlen(PORTS_FILES->d_name);
  23.                         strcat(PORTS, PORTS_FILES->d_name) }}
  24.  
  25.         printf("%s", PORTS); }