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

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


  Mostrar Mensajes
Páginas: 1 ... 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [18] 19 20
171  Programación / Programación C/C++ / Llevo 1 año estudiando C++ aprox., y aún no hallo sentido a los punteros.. en: 10 Febrero 2019, 00:43 am
Hola amigos..

pues tal como se lee en el título, seguramente me creerán idiota o algo por el estilo (asumo que es muy probable que sea así después de hacer esta pregunta)..

Creí que los punteros tenían un poder enorme en la programación, referencia memoria en vez de valor, supuse que era la opción perfecta para interactuar con muchos datos, pero después de ver que los arreglos y matrices internamente se procesan como punteros (pues son las reglas que conozco al menos de manejar mucha información) no le hallé mas sentido a los punteros, es decir... si tengo :

Código
  1.  
  2. int numero = 5;
  3.  
  4. void ConsultarNumero(){
  5.   cout << "Numero es : " << numero << endl;
  6. }
  7.  
  8. void ModificarNumero(){
  9.    numero = 6;
  10. }
  11.  
  12. void SumarUnoAlNumero(){
  13.     numero++;
  14. }
  15.  
  16.  

En vez de :

Código
  1.  
  2. int main (){
  3.   int * numero = new int;
  4.   *numero = 5;
  5.   consultarNumero(numero);
  6.   modificarNumero(numero, 6);
  7.   sumarUnoAlNumero(numero);
  8.  
  9. }
  10.  
  11. void consultarNumero(int * _numero){
  12.     cout << "El numero es : " << *_numero << endl;
  13. }
  14.  
  15. void modificarNumero(int * _numero, int _nuevoNumero){
  16.    *_numero = _nuevoNumero;
  17. }
  18.  
  19. void sumarUnoAlNumero(int * _numero){
  20.    *_numero++;
  21. }
  22.  
  23.  
  24.  


Como verán, simplemente reemplacé el puntero por una variable global, de todas formas sin puntero estoy accediendo a una variable compartida sin la necesidad de consultar su memoria...

Alguien me podría guiar sobre el uso de punteros?
Gracias de antemano.
172  Programación / Programación C/C++ / Re: Que significa <>() ? (Esto lo vi en Unreal) en: 9 Febrero 2019, 03:22 am
Templates!...
Gracias amigo, voy a echarle un vistazo...
173  Programación / Programación C/C++ / Que significa <>() ? (Esto lo vi en Unreal) en: 8 Febrero 2019, 02:51 am
Hola señores..
Estoy intentando entender la sintaxis de Unreal.. y me topé con esto que no tengo claro:

Código
  1. UBoxComponent * caja = CreateDefaultSubmesh<UBoxComponent>(TEXT("Cubo"));
  2.  

lo que va entre < > no me queda claro que cosa es, obviamente es una clase pero por qué va entre signos mayor y menor que... y que sería CreateDefaultSubMesh ?

Gracias.
174  Programación / Programación C/C++ / Como comprimir y descomprimir un archivo desde c++ ? en: 30 Enero 2019, 22:07 pm
Hola amigos.

Tengo una alternativa para comprimir y descomprimir archivos desde el codigo, pero es algo bruta, simplemente usando la funcion system();  donde el parámetro es la linea de comando para comprimir o descomprimir:

Código
  1. system("gzip archivo.txt");
  2. system("gzip -d archivo.txt");
  3.  

Sin embargo, no se, algo me dice que no debo hacerlo asi, o quiza me persigue la idea de que debo aprender a toda costa a hacerlo usando librerias como zlib o 7zip...

Algun ejemplo de como comprimir o descomprimir?.. imagino que tengo que usar la clase FILE

Gracias de antemano.
175  Programación / Programación C/C++ / Conversiones con stringstream en: 26 Enero 2019, 20:57 pm
He estado buscando distintas formas de convertir de int a float, char* a string, char* a int, char* a float, string a float.. o cualquier otra que se venga en mente, hay varias funciones que hacen esto:

atoi()
stoi()
to_string()
etc...

Sin embargo, me encontré con que se puede hacer cualquier tipo de conversión usando stringstream:

Código
  1. stringstream ss;
  2. int numero;
  3. string strNumero = "5";
  4. ss << strNumero;
  5. ss >> numero;
  6.  

Hacer esto es extremadamente fácil, sin hacer un tipo de cast o invocar alguna función extra, y funciona...  La duda es, hay alguna restricción de conversión para stringstream?

Gracias.
176  Programación / Programación C/C++ / Re: Bus error : 10. (muy raro).. en: 26 Enero 2019, 20:13 pm
Ya esta, gracias por la explicación...
177  Programación / Programación C/C++ / Bus error : 10. (muy raro).. en: 19 Enero 2019, 16:46 pm
Buenas.

Estoy practicando C++ en 3 equipos, dos de ellos son OSX y otro es Xubuntu Linux, comparto mi aprendizaje entre los computadores usando git, así que actualizo el código cada vez que me cambio de equipo.

El problema en concreto es que en osx, al llegar a cierta parte del programa, se cierra mostrándome el mensaje "Bus Error : 10", cosa que no sucede cuando lo compilo y lo ejecuto en linux, me da la espina que puede ser algo del compilador, en ambos ejecuto la misma sentencia para compilar:

$c++ -o programa programa.cpp

Tengo identificada la linea que me manda ese error, está relacionada con la función
strcpy();

Tengo entendido que el error se refiere a que estoy invocando o asignando un valor a un indice que no existe o que tiene un formato incorrecto.  Pero de ser así, linux también debería botarme el programa..

El programa esta aqui:

https://paste.ofcode.org/BYUkcz7MFesBRRFyXjNCGg
Linea 352 específicamente.


*** EDIT ***
----------------

indiceAlumnoSeleccionado equivale a -1 al momento de usar strcpy, y eso marca el error de Bus Error 10, es lógico!, pero, por qué en linux me lo permite?..

*** EDIT 2 **
----------------

Linux permite la ejecución pero funciona mal, bueno, ya tengo identificado el problema, pero sería bueno si alguien sabe, me pueda explicar por qué los compiladores se comportan así, mi programa tenía un error y el compilador del Linux lo omitió...
178  Programación / Programación C/C++ / Re: Orden de ejecucuion de sentencias en: 18 Enero 2019, 19:13 pm
Excelente amigos, gracias por la explicación...

Me ha quedado claro.
179  Programación / Programación C/C++ / Re: Orden de ejecucuion de sentencias en: 18 Enero 2019, 14:27 pm
Creo que tienes razon, hay algo en eso del buffer stdout....

Concretamente en el programa que estaba haciendo, hay algo asi:

Código
  1.  
  2. void ingresarNota(){
  3.  
  4.     unsigned int opcion = 9;    
  5.     char * asignatura = new char[16];
  6.  
  7.     cout << "Menu: " << endl;
  8.     cout << "1- Matematicas " << endl;
  9.     cout << "2- Historia " << endl;
  10.     cout << "3- Ingles " << endl;
  11.  
  12.     cout << "Opcion (0 = Regresa al menu principal) : ";
  13.     cin >> opcion;
  14.  
  15.  
  16.     switch (opcion){
  17.  
  18.          case 0:
  19.              cout << string(100, '\n');     //limpiar pantalla
  20.              mostrarMenuPrincipal();
  21.              break;
  22.  
  23.          case 1:
  24.               strcpy (asignatura, "Matematicas");
  25.               break;
  26.  
  27.          case 2:
  28.               strcpy (asignatura, "Historia");
  29.               break;
  30.  
  31.          case 3:
  32.               strcpy (asignatura, "Ingles");
  33.               break;
  34.  
  35.  
  36.     }
  37.  
  38.     cout << endl << "Asignatura seleccionada : " << asignatura << endl;
  39.  
  40.     //otra instruccion 1
  41.     //otra instruccion 2
  42.     //ciclo for 3
  43.     //ciclo for 4
  44. }
  45.  
  46. void mostrarMenuPrincipal(){
  47.  
  48.     unsigned int opcion = 9;
  49.  
  50.     cout << "Menu Principal: " << endl;
  51.     cout << "-----------------------" << endl;
  52.     cout << "1- Ingrese Alumno nuevo " << endl;
  53.     cout << "2- Seleccionar alumno " << endl;
  54.     cout << "3- Ingrese nota" << endl;
  55.     cout << "4- Salir" << endl;
  56.  
  57.     cout << "Opcion: ";
  58.     cin >> opcion;
  59.  
  60.     switch (opcion){
  61.  
  62.          case 1:
  63.               nuevoAlumno();
  64.               break;
  65.  
  66.          case 2:
  67.               seleccionaAlumno();
  68.               break;
  69.  
  70.          case 3:
  71.               ingresarNota();
  72.               break;
  73.  
  74.          case 4:
  75.               exit(0);
  76.  
  77.     }
  78.  
  79. }
  80.  
  81.  


En el codigo, cuando el programa pasa por ingresarNota() y si yo selecciono 0, lo que hace es entrar a mostrarMenuPrincipal() pero alcanza a salir de switch-case y alcanza a ejecutar la linea "cout << endl << "Asignatura seleccionada : " << asignatura << endl"  luego de eso ya no sigue ejecutando nada, es decir, la instruccion "//otra instruccion 1" ya no es ejecutada..
180  Programación / Programación C/C++ / Orden de ejecucuion de sentencias en: 18 Enero 2019, 12:48 pm
Buenas

Cuando estamos dentro de una funcion y llamamos a otra  que pasa en la ejecucion?

Ejemplo:

Código
  1. Void sumar(){
  2.     // hace una cosa 1
  3.     // hace otra.cosa mas 2
  4.     MostrarMenuPrincipal();
  5.     // hace otra.cosa 3
  6.     // hace 4
  7.  
  8.     Int valor;
  9.     std::cout << "ingrese valor: ";
  10.     Std::cin >> valor;
  11.  
  12.     Switch (valor){
  13.         case 1:
  14.               Cout << "es uno ";
  15.               Break;
  16.      }
  17. }
  18.  
  19. Void MostrarMenuPrincipal(){
  20.       // hace otras cosas 5
  21. }
  22.  

Que sucede?
1. Cuando se ejecuta la funcion sumar() va a llegar hasta la llamada a la funcion MostrarMenuPrincipal() y esperara a que esa funcion devuelva un valor o termine, por lo que la linea «hacer otra.cosa 3» no sera ejecutada al intante...

2. Cuando se ejecuta la funcion sumar() va a llegar hasta la llamada a la funcion MostrarMenuPrincipal() y al instante continuara paralelamente ejecutando ambas funciones....

Les pregunto esto ya que en un programa de practica que realice ayer me paso algo extraño, cuando la funcion que llamaba dentro de otra tenia un menu y una interaccion con el usuario mediante cin, la ejecucion de la funcion anterior (en este caso.sumar() ) no se ejecutaba mas quedaba bloqueada por la llamada a la nueva funcion, sin embargo, si esta nueva funcion no.tenia cin, la ejecutaba y luego volvia a la funcion anterior..

Páginas: 1 ... 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [18] 19 20
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines