Cómo hacer una variedad de estructuras en c

Cómo hacer una variedad de estructuras en c
Primero entenderemos las estructuras en C y luego discutiremos sobre la variedad de estructuras en C. También pasaremos por la variedad de punteros de estructura y cómo acceder a los miembros de la estructura dentro de la matriz de objetos de estructura.

Las estructuras son el grupo definido por el usuario de tipos de datos similares o diferentes. Un grupo similar o diferente de tipos de datos se puede agrupar bajo un nombre conocido como estructuras. Declaración de estructura de ejemplo en C:

Struct ABC
Int a;
Char b;
Flotante c;
;

Para crear objeto a partir de la declaración de estructura, aquí está la sintaxis en C para hacerlo:

Struct ABC OBJ;

Con esta creación de objetos, la memoria se asigna a la estructura. Para acceder al miembro de las estructuras con la ayuda del objeto (OBJ) se puede hacer como:

Obj.a = 10; obj.b = 'c'; obj.C = 1.0;

Este es el caso cuando se crea el objeto, no hay necesidad de asignar ninguna memoria. Una vez que el objeto esté instanciado, la memoria se asignará automáticamente.

La asignación de memoria a la estructura se puede hacer en tiempo de ejecución. Para la asignación de tiempo de ejecución, se puede usar la función MALLOC.

Habrá una declaración de puntero a la estructura. La declaración del puntero a la estructura se puede hacer como struct ABC *PTR; Con esta declaración, no habrá asignación de memoria al objeto de estructura. La función MALLOC debe usarse para asignar la memoria y a continuación se encuentra la sintaxis para hacerlo:

Struct ABC *PTR;
ptr = malloc (sizeOf (struct ABC));

Ahora, PTR tendrá la memoria asignada. Puede almacenar los datos para los elementos de la estructura miembros.

Para acceder a los miembros de la estructura con la ayuda de punteros se puede hacer de la siguiente manera:

Ptr-> a = 10; ptr-> b = 'c'; ptr-> c = 2.0;

Hasta ahora, discutimos el objeto de estructura única. Ambas formas de acceso de elementos de miembros, hemos visto a través de punteros y el acceso directo con objetos.

Tenemos dos formas de definir las estructuras, primero es definir el objeto de la estructura y otra forma es definir el puntero a la estructura.

Objeto de estructura: struct ABC OBJ;
Puntero de estructura: struct ABC *PTR;

Ahora, discutamos la variedad de objetos de estructura y la variedad de punteros de estructura. La matriz es un grupo de objetos del mismo tipo. Por ejemplo, la matriz de OBJ se declarará como estructura ABC OBJ [128]. La matriz de punteros a los objetos de la estructura será como estructura ABC *PTR [128]. Ambas matrices definieron los 128 elementos de los objetos y punteros de la estructura.

C programa para declarar objeto de estructura:

#incluir
struct ABC
int a;
char b;
flotante c;
;
int main ()

struct ABC OBJ = 1, 'C', 3.4;
printf ("a =%d, b =%c, c =%f \ n", obj.A, obj.B, obj.C);
regresar 0;

Producción:

bash-4.2 $ ./a.afuera
a = 1, b = c, c = 3.400000
bash-4.2 $

El programa anterior define el objeto de estructura y una forma de inicializar al miembro mientras declara el objeto. Inicializamos las variables del miembro con valores específicos e imprimimos esas variables accediendo a los miembros con el objeto directamente. A se asigna con 1, B se asigna con 'C' y C se asigna con el valor flotante 3.4. A continuación se muestra la instantánea del programa y la salida.

Instantánea:

Programa C para declarar el puntero a la estructura:

#incluir
struct ABC
int a;
char b;
flotante c;
;
int main ()

struct ABC *PTR;
ptr = malloc (sizeOf (struct ABC));
ptr-> a = 4;
ptr-> b = 'd';
ptr-> c = 5.5;
printf ("a =%d, b =%c, c =%f \ n", ptr-> a, ptr-> b, ptr-> c);
regresar 0;

Producción:

bash-4.2 $ ./a.afuera
a = 4, b = d, c = 5.500000
bash-4.2 $

El programa anterior define el puntero al objeto de la estructura. La función MALLOC se usa para asignar memoria para la variable de puntero. Inicializamos las variables del miembro con valores específicos e imprimimos esas variables accediendo a los miembros con puntero. A se asigna con 4, B se asigna con 'D' y C se asigna con el valor flotante 5.5. A continuación se muestra la instantánea del programa y la salida.

Instantánea:

Ahora, pasemos por el programa C para la variedad de estructuras y la variedad de punteros a las estructuras.

C Programa para la matriz de estructura de objetos:

#incluir
struct ABC
int a;
char b;
flotante c;
;
int main ()

estructura abcobj [2];
obj [0].a = 4;
obj [0].b = 'd';
obj [0].C = 5.5;
obj [1].a = 5;
obj [1].b = 'f';
obj [1].C = 8.2;
printf ("[0] a =%d, [0] b =%c, [0] c =%f \ n", obj [0].a, obj [0].B, obj [0].C);
printf ("[1] a =%d, [1] b =%c, [1] c =%f \ n", obj [1].a, obj [1].B, obj [1].C);
regresar 0;

Producción:

bash-4.2 $ ./a.afuera
[0] a = 4, [0] b = d, [0] c = 5.500000
[1] a = 5, [1] b = f, [1] c = 8.200000
bash-4.2 $

El programa anterior define la matriz de objeto de estructura y una forma de inicializar a los miembros con la ayuda de objetos. Inicializamos las variables del miembro con valores específicos e imprimimos esas variables accediendo a los miembros con el objeto directamente. Por simplicidad, solo hemos tomado 2 objetos. El primer objeto A se asigna con 4, B se asigna con 'D' y C se asigna con el valor flotante 5.5. El segundo objeto A se asigna con 5, B se asigna con 'F' y C se asigna con el valor flotante 8.2. A continuación se muestra la instantánea del programa y la salida.

Instantánea:

C Programa para la matriz de punteros a la estructura de objetos:

#incluir
struct ABC
int a;
char b;
flotante c;
;
int main ()

struct ABC *PTR [2];
ptr [0] = malloc (sizeOf (struct ABC));
ptr [1] = malloc (sizeOf (struct ABC));
Ptr [0]-> a = 4;
ptr [0]-> b = 'd';
PTR [0]-> C = 5.5;
PTR [1]-> a = 5;
Ptr [1]-> b = 'f';
PTR [1]-> C = 8.2;
printf ("[0] a =%d, [0] b =%c, [0] c =%f \ n", ptr [0]-> a, ptr [0]-> b, ptr [0] -> c);
printf ("[1] a =%d, [1] b =%c, [1] c =%f \ n", ptr [1]-> a, ptr [1]-> b, ptr [1] -> c);
regresar 0;

Producción:

bash-4.2 $ ./a.afuera
[0] a = 4, [0] b = d, [0] c = 5.500000
[1] a = 5, [1] b = f, [1] c = 8.200000
bash-4.2 $

El programa anterior define la variedad de punteros a objeto de estructura y una forma de inicializar a los miembros con la ayuda de punteros. Inicializamos las variables del miembro con valores específicos e imprimimos esas variables accediendo a los miembros con variables de puntero. Por simplicidad, solo hemos tomado 2 consejos. El primer puntero al objeto A se asigna con 4, B se asigna con 'D' y C se asigna con valor flotante 5.5. El segundo puntero al objeto A se asigna con 5, B se asigna con 'F' y C se asigna con el valor flotante 8.2. A continuación se muestra la instantánea del programa y la salida.

Instantáneas:

Conclusión:

Discutimos el tipo de datos de estructura en C y las formas de declarar los objetos y punteros para estructurar objetos. También discutimos algunos ejemplos y con salida. Se discutieron tanto los objetos como los punteros. La variedad de objetos y puntero a los objetos también se discutieron con ejemplos.