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 -> ?
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 -> ?
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
Ahh, ok. Ayudó, muchas gracias! El -> se usaría si tuviésemos una lista de punteros a nodoCirc.
Saludos.
Sí, puede ser que el nombre nodoCirc confunda al hacer pensar en nodos enlazados, en los que la forma habitual de acceder es mediante un puntero desde el nodo anterior.