elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  HOlA! Ayuda con una duda basica en arreglos!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: HOlA! Ayuda con una duda basica en arreglos!  (Leído 3,445 veces)
larregui15

Desconectado Desconectado

Mensajes: 8


Ver Perfil
HOlA! Ayuda con una duda basica en arreglos!
« en: 22 Julio 2015, 23:44 pm »

Hola! Soy nueva en esto de la programacion, mi duda es la siguinte: Como hago para pedir la longitud de un arreglo antes de crear el mismo?

Por ejemplo, quiero que mi arreglo sea de longitud 7 ... entonces como pido eso? despues una vez que haya señalado que sera de longitud 7, pedir los 7 valores y de ahi ya iniciar con las operaciones teniendo mi arreglo de longitud 7 con los valores que yo quiera.
 
Agradezco de antemano su ayuda!  :rolleyes:  :rolleyes:  ;-)


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: HOlA! Ayuda con una duda basica en arreglos!
« Respuesta #1 en: 23 Julio 2015, 00:11 am »

en C o en C++?

en C sería algo como (este método también se puede usar en C++)

Código
  1. int *arreglo;//un puntero a un tipo int
  2. int largo; //aquí definiremos el tamaño
  3.  
  4. //le pides al usuario el tamaño por el método que quieras
  5.  
  6. arreglo = (int *) malloc(sizeof(int) * largo);


en C++ es ligeramente más simple

Código
  1. int largo; //aquí definiremos el tamaño
  2.  
  3. //le pides al usuario el tamaño por el método que quieras
  4.  
  5. int *arreglo = new int[largo];
  6.  



En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
crack81

Desconectado Desconectado

Mensajes: 222



Ver Perfil
Re: HOlA! Ayuda con una duda basica en arreglos!
« Respuesta #2 en: 23 Julio 2015, 00:34 am »

No olvides algo muy importante que es liberar la memoria
despues utilizarlos

para c se usa la funcion free

Código
  1.  free(arreglo);
  2.  

y para c++ delete cuando son punteros simples o delete[] cuando son arreglos dinamicos

Código
  1.  delete[] arreglo;
  2.  
En línea

Si C/C++ es el padre de los lenguajes entonces ASM es dios.
larregui15

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: HOlA! Ayuda con una duda basica en arreglos!
« Respuesta #3 en: 23 Julio 2015, 02:28 am »

Muchas gracias
En línea

0and6

Desconectado Desconectado

Mensajes: 49


Ver Perfil
Re: HOlA! Ayuda con una duda basica en arreglos!
« Respuesta #4 en: 5 Agosto 2015, 07:12 am »

 ;D ;D Genial la neta yo pensaba que eso no se podia hacer y veo que con punteros o apuntadores es posible
siempre trae algo bueno leer este foro
 >:D >:D >:D
En línea

Helbal

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: HOlA! Ayuda con una duda basica en arreglos!
« Respuesta #5 en: 7 Agosto 2015, 12:22 pm »

No es buena idea gestionar la memoria manualmente. En C++ deberías utilizar los punteros inteligentes: unique_ptr<> o shared_ptr<>
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: HOlA! Ayuda con una duda basica en arreglos!
« Respuesta #6 en: 7 Agosto 2015, 16:10 pm »

No es buena idea gestionar la memoria manualmente. En C++ deberías utilizar los punteros inteligentes: unique_ptr<> o shared_ptr<>

Por muchas clases y funciones que existan para evitar el uso de punteros a los programadores, saber asignar memoria es necesario. Y tampoco es difícil. Solo hay que recordar liberarla.
En línea

Helbal

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: HOlA! Ayuda con una duda basica en arreglos!
« Respuesta #7 en: 7 Agosto 2015, 16:51 pm »

Ese es el problema: "Solo hay que recordar liberarla". Eso es "mentira" y lo pongo entre comillas porque si y no. Me explico: el problema de utilizar punteros no es solo el recordar liberar la memoria sino que si en una función creas un puntero y surge algún tipo de error que envie una excepción, y que el delete se encuentra en esa misma función, va a haber una fuga de memoria.
Es cierto que puedes atrapar la excepción con un try{}, catch{} y liberar la memoria pero pueden surgir una enorme cantidad de problemas e intentar predecirlos todos no es precisamente fácil
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: HOlA! Ayuda con una duda basica en arreglos!
« Respuesta #8 en: 7 Agosto 2015, 16:56 pm »

Ese es el problema: "Solo hay que recordar liberarla". Eso es "mentira" y lo pongo entre comillas porque si y no. Me explico: el problema de utilizar punteros no es solo el recordar liberar la memoria sino que si en una función creas un puntero y surge algún tipo de error que envie una excepción, y que el delete se encuentra en esa misma función, va a haber una fuga de memoria.
Es cierto que puedes atrapar la excepción con un try{}, catch{} y liberar la memoria pero pueden surgir una enorme cantidad de problemas e intentar predecirlos todos no es precisamente fácil

Como digo, hay que recordar liberarla. No liberarla en caso de excepción, es no recordar liberarla en una posible ruta del código xD

Temer a la memoria es absurdo. La memoria es parte necesaria del programa, que se usa constantemente. Creo que lo mejor que puede hacer un programador, es aprender C o ASM. Aprender lo que es la memoria. Aprender a tratarla. Aprender que es algo corriente, y aprender que hay que tener cuidado con ella. Es todo.
En línea

Helbal

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: HOlA! Ayuda con una duda basica en arreglos!
« Respuesta #9 en: 7 Agosto 2015, 17:24 pm »

Los punteros inteligentes son punteros. No se trata de evitar el gestionar la memoria sino de evitar cualquier tipo de fuente de errores. Un puntero inteligente no deja de ser un simple puntero pero mejorado para asegurar que la memoria va a ser liberada correctamente.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Duda]Arreglos en PHP
PHP
rolly21102 8 4,033 Último mensaje 6 Julio 2010, 21:16 pm
por rolly21102
Duda arreglos
Programación C/C++
alexis33de 7 4,044 Último mensaje 31 Agosto 2010, 18:27 pm
por [L]ord [R]NA
duda con arreglos
Programación C/C++
sheva777 2 1,972 Último mensaje 29 Mayo 2013, 16:03 pm
por rir3760
duda con arreglos
Java
droidZ 2 1,736 Último mensaje 24 Septiembre 2013, 19:16 pm
por droidZ
Hola necesito ayuda con el siguiente programa. (ARREGLOS)
Programación C/C++
padiuwu 1 1,812 Último mensaje 5 Agosto 2018, 05:19 am
por CalgaryCorpus
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines