Inicializar Arrays de estructuras?

imagenio
19 de Mayo del 2008
Hola!

Necesito hacer un programa con arrays de tipo structura.

Pero me ha surgido una duda,. Necesito igualar los elementos del array a 0, o a otro valor.

Para ello he usado la siguiente linea:

{
int i;
for(i=0; i<T; i++)
agenda[i]=0;
}

Pero al tratarse de un array tipo struct, no me funciona. Ademas, son cadenas de caracteres.

Que hago para inicializar a cero un elemento completo de un array?

David Reza
19 de Mayo del 2008
Al declarar el arreglo de tipo estructura decláralo de la siguiente forma:

struc NombreStruct
{
int x;
double y;
float z;
char caracter[10];
} Ejemplo[10] = {};

Con esto, todos los campos de ejemplo están inicializados en 0.

Ejemplo.x, Ejemplo.y, Ejemplo.z y Ejemplo.caracter[--] incluyendo todos los elementos del arreglo caracter están inicializados en 0.

También, si declaraste el arreglo fuera de la sentencia de la estructura, puedes hacer lo mismo:

NombreStruct Ejemplo2 = {};

Aquí te dejo un ejemplo para que lo compiles

---------------------------------------------------------------

#include <iostream>
using namespace std;

int main()
{

struct
{
int x;
float y;
double z;
char aChar[10];
} arreglo[10]={};

for (int i=0; i<10;i++)
cout << arreglo[i].aChar[i] << endl;

cin.get();
return 0;
}

-----------------------------------------------------------------

Espero que te sirva, saludos