#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
Porque una estructura sólo es un modelo. No puedes guardar nada hasta que no hagas una variable de ella.
1- En C++ 11 puedes hacer algo como:
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:
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:
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