<p dir="ltr">Hola Omar:<br>
De las dos formas es correcto, todo depende del espacio que puedas utilizar dependiendo de la memoria del sistema.<br>
Yo siempre utilizo memoria estatica salvo cuando necesito compartir memoria entre varios usuarios (gnu/linux) y entonces utilizo memoria compartida por varios procesos.</p>
<p dir="ltr">Saludos<br>
Jose Luis</p>
<div class="gmail_quote">El 04/01/2015 10:47, "omar mendoza" <<a href="mailto:omar.p9@gmail.com">omar.p9@gmail.com</a>> escribió:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">¡Hola a todos!<div>Tengo una duda sobre apuntadores, si tengo </div><div><br></div><div><div>struct Punto_ {</div><div>    float x;</div><div>    float y;</div><div>};</div><div><br></div><div>typedef struct Punto_ Punto;</div><div><br></div><div>void suma(Punto *p, Punto *p1, Punto *p2) {</div><div>    p->x = p1->x + p2->x;</div><div>    p->y = p1->y + p2->y;</div><div>}</div><div><br></div><div><div>void show(Punto *p) {</div><div>    printf("(x,y) = (%.2f, %.2f)\n", p->x, p->y);</div><div>}</div></div><div><br></div><div><div>int main()</div><div>{</div><div>    printf("Iniciando...\n");</div><div>    Punto *p = (Punto *) malloc(sizeof(Punto));</div><div>    Punto *pp = (Punto *) malloc(sizeof(Punto));</div><div>    Punto *p_ = (Punto *) malloc (sizeof(Punto)); // diferencia</div><div>    if (p == NULL || pp == NULL || p_ == NULL) {</div><div>        fprintf(stderr, "Memoria no suficiente");</div><div>        return 0;</div><div>    }</div><div><br></div><div>    p->x = 1.;</div><div>    p->y = 2.;</div><div>    pp->x = 1.;</div><div>    pp->y = 2.;</div><div><br></div><div><br></div><div>    show(p);</div><div>    show(pp);</div><div><br></div><div>    suma(p_, p, pp); // diferencia</div><div><br></div><div>    show(p_); // diferencia</div><div><br></div><div>    free(p);</div><div>    free(pp);</div><div>    free(p_);</div><div>    return 0;</div><div>}</div></div><div><br></div><div><br></div><div>Cuál sería la diferencia si hago</div><div><br></div><div><div>int main()</div><div>{</div><div>    printf("Iniciando...\n");</div><div>    Punto *p = (Punto *) malloc(sizeof(Punto));</div><div>    Punto *pp = (Punto *) malloc(sizeof(Punto));</div><div>    Punto p_;  // diferencia</div><div>    if (p == NULL || pp == NULL) {</div><div>        fprintf(stderr, "Memoria no suficiente");</div><div>        return 0;</div><div>    }</div><div><br></div><div>    p->x = 1.;</div><div>    p->y = 2.;</div><div>    pp->x = 1.;</div><div>    pp->y = 2.;</div><div><br></div><div><br></div><div>    show(p);</div><div>    show(pp);</div><div><br></div><div>    suma(&p_, p, pp); // diferencia</div><div><br></div><div>    show(&p_); // diferencia</div></div><div><br></div><div><div>    free(p);</div><div>    free(pp);</div><div>    return 0;</div><div>}</div></div><div><br></div><div>/////</div><div>Es decir entre crear en el main </div><div>Punto *p_ = (Punto *) malloc ....</div><div>Punto p_;</div><div><br></div><div>y pasarlo a las funciones</div><div><br></div><div>suma(p_, p, pp)</div><div>suma(&p_, p. pp)</div><div>show(p_);</div><div>show(&p_);</div><div><br></div><div>Espero me haya explicado...</div><div><br></div><div>Saludos</div><div><br></div><div><br></div>-- <br><div><div>Omar Jonathan Mendoza Bernal</div>"Las cicatrices nos recuerdan que el pasado fue real" Dr. Lecter en Dragón Rojo </div>
</div></div>
<br>_______________________________________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a><br>
<a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br></blockquote></div>