Cita:
Iniciado por ariattaquero Si es verdad. Pero bueno lo que queria saber era lo de ese "idAgr = tda->comando[i].id;" pero si me decis que esta bien, me fijare otra cosa... pero justo se cualga ahi... me fijare como le estoy pasando el puntero.
Gracias MaxExtreme por tu respuesta, y tan rapida
:
El problema no es que el código esté mal escrito, sino que ya funcionando, cuando tratas de acceder ahí, no es un lugar de memoria válido (el programa trata de leer esa memoria) y el sistema le debe bloquear.
El problema en concreto puede ser en -> o en [i].
Mirando un poco por encima, he visto bastantes desastres:
1. No veo definido a "max".
2. En los bucles como "for(i=0;i<=max;i++)" te estás colando 1 posición de más en la memoria, los arrays van de 0 a max-1, no a max. Por tanto, "<", nunca "<=".
3. Para crear un "tda" o "destruirlo", crear un "comando" y llamas a otra función. Pero si la función es para las TDA, para que haces...
Código:
Tcomandos comando[max];
destruir_cmd(comando);
4.. y las que queden.