Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





New ¿para Qué Sive Realmente?

Iniciado por J_F_NASH, 22 de Octubre de 2003, 08:14:28 AM

« anterior - próximo »

J_F_NASH

 new: Crea automaticamente un objeto del tamaño apropiado y regresa un apuntador del tipo apropiado.

No entiendo esto.
El tema es que si yo creo un array:
int pepe[10] ={1,2,3,4,5,6,7,8,9,10};
Cuando las cantidades que he metido no me interesen siempre puedo meterles otras, porque machacará los valores anteriores ¿no?. Por ejemplo:
int pepe[10] ={8,3,10,14,2,6,8,0,4,1};

Entonces ¿por que el uso de new? ¿reservar memoria... para qué si puedo machacar?
¿O es que si no reservas memoria tu mismo te la reserva automaticamente y no sabes cuanta de mas te ha reservado?




S2.

sés

 Imagina que vas a cargar todos los sprites de un juego, ¿dónde los cargas? ¿Vas a crear un array en tu código del tamaño justo para ellos? ¿Y si quitas o añades? ¿Y si cambia alguno? ¿Tendrías que modificar tu código y recompilar?

new, al igual que malloc y sus amigos :P sirven para reservar memoria cuando no sabes el tamaño que quieres. Y, aunque lo supieras, si lo haces, eso engordaría tu ejecutable de una forma bestial.
Soy indeciso... ¿o no?

J_F_NASH

 Ok, gracias por la explicación. Ahora entiendo.




S2.

Mars Attacks

 ¿JF, qué guía estás siguiendo para aprender la programación? Porque me da la sensación de que te estás estresando demasiado y no es la más apropiada.

synchrnzr

 
Citar¿JF, qué guía estás siguiendo para aprender la programación? Porque me da la sensación de que te estás estresando demasiado y no es la más apropiada.

He ido siguiendo los posts de JF y en eso estoy totalmente de acuerdo. Aquí falla algo: o no la sigue bien o es una mierda de guía (ole)

Dinos cuál es la que sigues, a lo mejor te podemos recomendar algo mejor ;)

sync

J_F_NASH

 Hola de nuevo y mil gracias por el interés.
Veamos,... Soy Diseñador Gráfico y me metí hace cosa de un año a leer un libro (Como programar en C++ de Deitel/Deitel). Como digo, estuve leyendolo (eso si, tratando de entender los ejemplos) sin hacer práctica alguna durante unos 5 o 6 meses. Mi objetivo por aquel entonces era entender en que consistia la programación (si, ya se que empecé por lo mas duro) ya que no tenia ni la mas remota idea. Como dato importante reconocer que las matemáticas no me han ido nada bien en mi época de estudiante, aunque empiezo a tener interés por ellas al ver para que puedo emplearlas.
Hace unos meses acabé de leerlo y me puse a hacer prácticas propias. Intento hacer una "simple" aventura conversacional en la consola de MS-DOS, repito, muy simple, unas nueve pantallas. Tuve que desistir, no sabia ni por donde empezar, de forma que me topé en Interné (por recomendación) con unos apuntes de "Introducción a C++: Informatica II Fundamentos de la programación" (-Escuela Superior de Ingenieros de San Sebastian- Tecnum). Van al grano y te ponen varios ejemplos que estoy realizando.

A parte de esto a veces consulto otro libro llamado "C++ de L.Joyanes Aguilar / H. Castán". Tengo otro por ahí que, por el momento, lo dejo aparcado "Visual C++ 6 Temas profesionales -Steven Holzner-".
Estos ultimos libros no son mios, son prestados.

He pensado en adquirir una especie de diccionario de C++, de forma que si me topo con algún término o función que desconozco poder encontrarla ahí. No es la primera vez que busco en lo que tengo y no encuentro.

Mi objetivo a largo (cada vez mas largo) plazo es saber programar un juego aprovechando mis conocimientos de diseño y 3D. El juego que yo quiera, tarde lo que tarde. No busco venderlo, al menos eso quiero meterme en la cabeza porque cuando pienso en eso ya nada sale tan bien como tenia pensado.

Abstenganse respuestas desalentadoras, desmoralizantes y desanimadoras, lo digo muy en serio. Pocas veces me salen las cosas bien en lo que programo, pero cuando me salen... me siento bien  :)



S2.

Mars Attacks

 Hmmm... tal vez precisamente el que vaya directo al grano sea lo que les impide que afiances tus conocimientos. Por ejemplo, esa definición tan escueta de new (del que se podrían escribir páginas) ya has visto que no sirve de mucho. Lo suyo sería que, a una explicación más detallada, le acompañaran ejemplos o diagramas que muestren la diferencia entre memoria dinámica y memoria estática.

Por cierto, si tienes problemas para encontrar el fallo en la llamada a una función (me remito a tu post anterior) no deberías ni querer oír hablar de memoria dinámica, que está diez escalones por encima.

Tómalo con mucha mucha calma, haz muchos ejercicios de cada asunto probando a variar el tema con el que estés trabajando; sólo así realmente comprenderás por qué funcionan o por qué no funcionan las cosas.

Recuerdo que antes en stratos había tutorialillos y guías (a mí la de C++ poniendo como ejemplo el juego de rol me vino al pelo en segundo); en cualquier caso, no conozco los libros que estás siguiendo y no puedo decirte nada acerca de ellos, pero la impresión que das es de estar haciendo aquaplanning sobre los conocimientos, en vez de absorberlos. Reduce la velocidad ;)

Un saludo.

J_F_NASH

 OK, del todo cierto. Voy a tomarme las cosas con mucha mas calma. Voy a empezar de nuevo y mas lento. De todas maneras pienso que es un error (al menos en mi caso) comenzar por C en vez de C++ como hace mi libro. Al final no sabes que es de C y de C++.
Acabo de pillarme "C++ para principiantes" y parece bastante entendible para mi. Claro que despues de leerme un par de libros tipo biblia...


S2.

Mars Attacks

 Yo no lo considero un error. Es más, incluso comenzaría con Pascal o con Python para comprender cómo funcionan las estructuras, los punteros y demás.
C es un lenguaje tan versátil y potente que es fácil que te pierdas. Y C++ es el hermano mayor de C... Para sacarle todo el rendimiento a C++ debes conocer y usar conceptos de orientación a objetos de los que mejor ni hablo.

En fin, si alguien sabe de una guía de C para principiantes donde se explique cada cosa con la claridad necesaria, ahora es el momento  :rolleyes:

Bueno, mucho ánimo y suerte con el C  (ole)  

AgeR

 Estoy de acuerdo con Mars en que quizá deberías empezar con otro lenguaje más asequible. Yo empecé con Pascal y me resultó facilísimo pasarme luego a C. Creo que te ayudaría empezar con un lenguaje como Delphi, Phyton o Basic.

Ah, y sobre todo no desistas nunca, que aquí todos aprendemos poco a poco!  (ole)

Saludos!

MChiz


Zhen

 Hombre yo no pienso que empezar por C sea un error. Lo que es un error es pasar por C si se quiere llegar a C++ (Ni que estuviera hablando de como llegar a un pueblo :D)

Lo que pienso es que se puede empezar a aprender perfectamente C++.

Y como libro biblia yo te aconsejo "El Lenguaje de Programacion C++" de Bjarne Stroustrup. Que puede parecer dificil, pero la ventaja es que explica C++ COMPLETAMENTE y de manera clara y concisa. Trae ejercicios y es ameno de leer.
No tocar. Ni siquiera para ver pasa. IMPORTANTE"
       Terry Pratchett

www.zhenstudio.net

NeLo

 buff

Yo creo que el Stroustrup no es tio muy didáctico. Se puede hacer espesito el libro.

No es obligatorio aprender C antes que C++. Pero todo lo que sepas de C, es útil después, y así primero aprendes el lenguaje, y luego la filosofia de la POO.

Saludos.
Drowning deep in my sea of loathing

Geo

 Un buen curso de c: http://c.conclase.net

Yo estoy aprendiendo C++ (lo de la POO), ya sé C y te aseguro que te sirve puesto que todas las estructuras de control son las mismas.

Saludos,
José Jorge (Geo).
a vida que viene y yo me voy.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.