[C con Clase] Pregunta sobre Estructuras Anidadas
Davidson, Steven
srd4121 en njit.edu
Lun Ene 28 02:46:42 CET 2013
Hola Edwin,
2013/1/27 Edwin Alexander Bohorquez Gamba <edwinprogramacion en hotmail.es>
> Hola, tengo una pregunta: Como puedo acceder a los campos de una
> estructura anidada, para realizar una asignacion?.
> En el siguiente codigo asigne una cadena a cada uno de estos campos, para
> despues imprimirlos, pero el compilador me dice que tengo errores.
>
>
Veamos el código fuente.
#include<iostream.h>
>
Si el compilador que usas es reciente, deberías usar el nombre estándar de
<iostream>.
using namespace std;
>
> struct stPersona {
> struct stNombre {
> char Nombre[32];
> char Apellidos[64];
> } NombreCompleto;
> char Telefono[10];
> };
>
> int main()
> {
> stPersona ::stNombre NombreAuxiliar;//declaro un objeto de tipo stNombre
> NombreAuxiliar.Nombre="Edwin";
> NombreAuxiliar.Apellidos="Bohorquez";
>
Aquí tienes los dos errores. Estás intentando asignar una dirección de
memoria a un array, que ya es una dirección constante de memoria Sospecho
que esto no es lo que quieres hacer.
Lo que seguramente te interese es copiar los caracteres de una cadena a los
del array en el campo de la estructura. Para esto, sugiero que uses
'strncpy()'. Por ejemplo,
strncpy( NombreAuxiliar.Nombre, "Edwin", 32 );
strncpy( NombreAuxiliar.Apellidos, "Bohorquez", 64 );
Para este caso particular, podrías optar por inicializar la estructura;
esto es,
stPersona :: stNombre NombreAuxiliar = { "Edwin", "Bohorquez" };
Espero haber aclarado la duda.
Steven
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20130127/cc35f62b/attachment.html>
Más información sobre la lista de distribución Cconclase