Sin ánimo de presumir, ese código que has puesto es demasiado raro. Parece que lo pones adrede como ejemplo de lo que no se debería hacer con los punteros en C:
1. Pusiste mal el nombre de la estructura, no es lo mismo _unastruc que unastruct. 2. La declaración char *(cad[8]); yo acostumbro a escribirla como char *cad[8]; 3. No debes usar una variable puntero sin inicializarla antes.
La escritura en una dirección de memoria desconocida no va a funcionar nunca "como cabría esperar".
Inicializando apropiadamente una variable puntero ya puede ser utilizada. 5. No explicas qué es lo que "no funciona", no sabemos si lo que pasa es que
no compila, o no mete el dato donde le pides, o en la ejecución falla en esa instrucción.
La expresión *(una.cad) accede al primer elemento del array cad, que es de tipo (char *). Pero ese elemento no lo has inicializado ni en el caso de la variable una, ni en el caso de la variable dos. Si lo hicieses apuntando a un array de caracteres con suficiente espacio.
Re:Qué peña más engreída hay por aquí
(Puntos:2)( http://guslibu.awardspace.com/ | Última bitácora: Viernes, 18 Marzo de 2011, 08:29h )
1. Pusiste mal el nombre de la estructura, no es lo mismo _unastruc que unastruct.
2. La declaración char *(cad[8]); yo acostumbro a escribirla como char *cad[8];
3. No debes usar una variable puntero sin inicializarla antes.
La escritura en una dirección de memoria desconocida no va a funcionar nunca "como cabría esperar".
Inicializando apropiadamente una variable puntero ya puede ser utilizada.
5. No explicas qué es lo que "no funciona", no sabemos si lo que pasa es que
no compila, o no mete el dato donde le pides, o en la ejecución falla en esa instrucción.
La expresión *(una.cad) accede al primer elemento del array cad, que es de tipo (char *).
Pero ese elemento no lo has inicializado ni en el caso de la variable una,
ni en el caso de la variable dos. Si lo hicieses apuntando a un array de caracteres con suficiente espacio.