Historias
Slashboxes
Comentarios
 
Este hilo ha sido archivado. No pueden publicarse nuevos comentarios.
Mostrar opciones Umbral:
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.
  • Gotcha

    (Puntos:0)
    por pobrecito hablador el Martes, 31 Octubre de 2006, 15:33h (#836182)
    Un clasico gotcha es hacer

    char *strdest;
    strdest = strsrc;

    Una cosa así puede que funcione en Java (no sé) o Python o uno de esos... pero en C no hagas esto NUNCA con strings del tipo char*, usa strcpy!!!!!!
    (por supuesto, antes tienes que reservar suficiente memoria en strdest). Quedaría algo así como:

    char *strdest;
    strdest = (char*)malloc(strlen(strsrc)+1);
    strcpy(strdest, strsrc);
    // whatever code
    free(strdest); // libera la memoria al final del programa!
  • Re:Gotcha

    (Puntos:2)
    por kalceto (21056) el Miércoles, 01 Noviembre de 2006, 15:57h (#836556)
    ( http://barrapunto.com/ | Última bitácora: Lunes, 15 Enero de 2007, 15:41h )
    Es importante lo de reservar suficiente memoria, como dice la página del man (más claro no se puede ser):
    Si la cadena destino de un strcpy() no es bastante grande (esto es, si el programador fue estúpido o perezoso, y no comprobó el tamaño antes de la copia) entonces puede ocurrir cualquier cosa.

    Pero como dicen por ahí mucho mejor usar la clase string de c++, incluso haces el include pero no lo usas (?¿?¿?¿?¿).
    Incluso te aconsejo usar templates para que la lista dinámica sea genérica y sirva para cualquier tipo de objeto.
    --

    Optimizacion motores de busqueda [optimizacionbusqueda.com]
    [ Padre ]