Pequeñita duda/consulta

Started by HaCkZJuaNN, October 05, 2009, 07:52:01 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

HaCkZJuaNN

Bueno, supongo que ya sabéis cómo me gustan a mi los tipos definidos y cómo me gusta armar follones con estos y con punteros.
Al caso, sólo quería confirmar una cosa porque como esto lo tenga mal me va a traer unos dolores de cabeza para encontrarlo cuando el programa empiece a hacer cosas raras que no me apetece nada. Juzgando por lo que me dice el compilador, creo que lo estoy haciendo bien.

Tengo una variable definida de la siguiente forma(lo hago de manera esquemática para que se entienda lo que es, obviamente en mi programa los nombres y demás son diferentes):

tipo_definido pointer variable;

y luego en el código:

variable = alloc(n*sizeof(tipo_definido)); //n es un int, distinto de 1

pues bien, luego tengo una variable global, que es una "constante" de tipo_definido(las constantes en tipos definidos tienen que ser globales), y quiero asignarle a variable[1] el VALOR de esa constante(básicamente, inicializarla a 0), NO la dirección de memoria(no por dios, esto sería la ecatombe), que está definida:

tipo_definido constante_definida;

y luego en otro proceso se inicializa con el valor que debe.

la pregunta:

si hago esto, le asigna el valor o la dirección de memoria(ya que variable está definida como pointer)?:

variable[1] = constante_definida;

Había hecho *(variable[1]) = constante_definida; pero el compilador me dice que variable[1] no es un puntero así que supongo que lo que tengo ahora está bien. Supongo que el [] ya lo lleva a la propia variable y no al puntero. Lo que no me lo dejaba claro es que en la propia declaración de la variable está declarada como puntero.

Gracias.

SplinterGU

por como alocaste la memoria, pointer es variable, variable[1] no lo es...

estas modificando el valor, pero si tenes un tipo no estas reseteandolo de esa forma.

hay ciertas particularidades que dependen de como hayas definido el tipo.

como sea, sin codigo es un poco dificil darte una respuesta 100% correcta.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2