Volviendo a lo del static , realmente dudo que sea de lenguaje c, pues esta palabra reservada se utiliza para para mantener un miembro comun en cada una de las instancias de una clase, y dado que en el lenguaje C no existe el concepto de clases, es muy seguro que sea de C++ y no de C.
la variable solo puede ser accesada desde su punto de declaracion hasta el final del archivo de codigo fuente.
pero no estoy seguro de que consecuencias podria tener usarla asi:static int num_pilas = 0;ya que podria implicar que se reasiganara 0 cada vez no?
Adicionalmente cuando implementes DestruyePila ya no te va a servir igual, pues Citar la variable solo puede ser accesada desde su punto de declaracion hasta el final del archivo de codigo fuente.Realmente entiendo que solo puede ser accesada desde su punto de declaracion hasta donde termina su scope, no hasta el final del archivo de codigo fuente.
si ademas se añade el calificador static tendriamos que las variables globales definidas en el modulo de implementacion (pila.c) no podrian accederse directamente desde el modulo cliente, solo mediante las funciones definidas en la interfaz (pila.h), algo similar a lo que sucede con la encapsulacion y los metodos get/set de la POO.
¿Como duplico los nodos de una pila si no se cuanto espacio debo reservar para los nuevos nodos?
¿Puedo usar un malloc con el tipo de datos void?.
a la misma zona de memoria!!! los datos son los mismos!.
- El problema anterior tambien me ha surgido al intentar implementar la funcion de concatenar pilas. Dado que aunque concatene pilas, la pila resultante tendra nuevos nodos, vale, pero sin embargo dichos nodos tendran apuntadores a los datos que tambien estan siendo apuntados por las pilas que han sido concatenadas.
Estoy pensando en mantener una lista enlazada que crezca por cada pila que se solicite y que contenga un identificador entero para identificar la pila dentro de la lista.