Estructuras: inicializar en ceros un array que es miembro de una estructura.

Iniciado por quantumax9, 12 Febrero 2019, 16:58 PM

0 Miembros y 1 Visitante están viendo este tema.

quantumax9


#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <string.h>
struct Clients{
       char nombre[50];
       char apellido[50];
       int DNI;
       char clase[1];
       int numberSeat;
       int plane1[10]={0,0,0,0,0,0,0,0,0,0};//ERROR. ¿POR QUÉ NO SE PUEDE INICILIZAR ASÍ????

       };

¿Cómo hago para inicializar el miembro array plane1 dentro de la definición de la estructura con ceros?
MENSAJE DEL COMPILADOR:
[Warning] no semicolon at end of struct or union
syntax error before '=' token

GRACIAS

MAFUS

Porque una estructura sólo es un modelo. No puedes guardar nada hasta que no hagas una variable de ella.

ThunderCls

1- En C++ 11 puedes hacer algo como:
Código (cpp) [Seleccionar]
struct Clients{
       char nombre[50] = {};
       char apellido[50] = {};
       int DNI;
       char clase[1];
       int numberSeat;
       int plane1[10] = {}; // inicializa a 0 todos los elementos
}


2- Puedes usar un constructor para tu estructura, aunque en este punto recomendaria que uses una clase:
Código (cpp) [Seleccionar]
struct Clients{
       char nombre[50];
       char apellido[50];
       int DNI;
       char clase[1];
       int numberSeat;
       int *plane1;
       Clients(){
           plane1 = new int[10]();
           // inicializa el resto
       }
};


3- Puedes usar la funcion:
   
Código (cpp) [Seleccionar]
memset(plane1, 0, sizeof(plane1));

4- Puedes usar un loop sobre cada elemento de tu array

5- Usa contenedores STL (vector, list, etc) en tu estructura

Saludos
-[ "...I can only show you the door. You're the one that has to walk through it." – Morpheus (The Matrix) ]-
http://reversec0de.wordpress.com
https://github.com/ThunderCls/