Examen Julio 2019 - Ejercicio 3

Examen Julio 2019 - Ejercicio 3

de Julian Tricanico Gadea -
Número de respuestas: 3

Hay algo que no estoy entendiendo de los punteros en general.

Si vamos a la parte a, la solución dice cosas del estilo asig->circuitos[i].f1 = NULL; .

Por qué ahí hay un punto y no un -> ?

En respuesta a Julian Tricanico Gadea

Re: Examen Julio 2019 - Ejercicio 3

de Fernando Fernandez -

ciruitos es un arreglo de elementos de tipo nodoCirc:

nodoCirc * circuitos;

Esta es la forma de definir un arreglo cuando no se conoce en tiempo de compilación el tamaño del arreglo.

Cuando en tiempo de ejecución se conoce ese tamaño se pide la memoria necesaria:

asig->circuitos = new nodoCirc[C+1];

asig es un elemento de tipo puntero a rep_Asignaciones. Por lo tanto para acceder a los componentes de esa estructura se debe usar el operador '->':

asig->circuitos, asig->funcionarios; etc.

Como asig->circuitos es un arreglo, asig->circuitos[i] es un elemento de tipo nodoCirc. Y nodoCirc es un tipo struct (registro) como cualquier otro. No es de tipo puntero a algo más. Para acceder a sus componentes se usa el operador '.':

asig->circuitos[i].f1


En respuesta a Fernando Fernandez

Re: Examen Julio 2019 - Ejercicio 3

de Julian Tricanico Gadea -

Ahh, ok. Ayudó, muchas gracias! El -> se usaría si tuviésemos una lista de punteros a nodoCirc.

Saludos.