Cómo asignar espacio para una estructura en la programación c
Cuando la función malloc () en la programación C necesita ejercicio, se convierte en la estructura - una sola estructura tras otro, cada uno de ellos sentado en un nuevo lugar en la memoria, gracias a malloc (). ¿Es que se pierden? ¡No! Debido a que cada estructura no pierde de vista la siguiente estructura como eslabones de una cadena.
La función malloc () deja de lado espacio para todos los tipos de variables de C, incluyendo matrices. También se puede exprimir una estructura en la memoria, por lo que un pequeño bolsillo agradable para la cosa, toda referencia de un puntero.
Cuando el almacenamiento de moda para una nueva estructura mediante el uso de un puntero, o en cualquier momento hace referencia a una estructura mediante el uso de un puntero, un nuevo operador C entra en juego: el -> cosa, que se conoce oficialmente como la estructura operador puntero. Este operador es el equivalente estructura de puntero del punto. Mientras que la notación miembro de estructura tradicional se ve así:
date.day = 14-
el mismo miembro cuando se hace referencia a través de un puntero de la estructura es la siguiente:
fecha-> día = 14-
¿Por qué no se utiliza la notación * peeker? Bueno, podría ser. El formato original para un miembro de la estructura de referencia de un puntero es la siguiente:
(* fecha) .PRIMER = 14-
Los paréntesis son necesarios a fin de obligar al operador * puntero a la fecha, la variable de estructura puntero nombre- lo contrario, el. operador tendría preferencia. Pero por alguna razón, los programadores C primitivos detestaban ese formato, por lo que fueron con -> en lugar.
Creación de un Portafolio Estructurado demuestra cómo una estructura puede ser creado utilizando la función malloc (). La estructura se define en la línea 7, y una variable de puntero de ese tipo de estructura se declara en la línea 12. En la línea 15, malloc () asigna suficiente almacenamiento para una estructura. El tamaño de la estructura se determina mediante el operador sizeof.
CREACIÓN DE UNA CARTERA ESTRUCTURADO
#include #include #include int main () {struct población {símbolo char [5] Precio -INT cantidad de flotación -} - struct existencia * invertir - / * Crear la estructura en la memoria * / invertir = (struct existencia *) malloc ( sizeof (struct existencias)) - si (invertir == NULL) {puts ("Algún tipo de malloc () error") - la salida (1) -} / * Asignar estructura de datos * / strcpy (inversión> símbolo "GOOG ") -invest-> cantidad = 100-inversión> precio = 801,19 - / * Pantalla de base de datos * / puts (" Inversiones Portfolio")-printf("SymboltSharestPricetValuen")-printf("%-6st%5dt%.2ft%.2fn",invest->symbol,invest->quantity,invest->price,invest->quantity*invest->price)-return(0)-}
El invertir referencias de punteros de la nueva estructura excavada en la memoria. Las líneas 23 a 25 se llenan la estructura con algunos datos. Entonces Líneas 28 a 34 de visualización de los datos. Observe cuidadosamente cómo el operador -> se utiliza para hacer referencia a los miembros de la estructura.
Ejercicio 1: Crear un nuevo proyecto mediante el código fuente de la creación de una cartera estructurada. Genere y ejecute.