• Lunes 12 de Mayo de 2025, 04:54

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - m0skit0

Páginas: 1 ... 17 18 [19] 20 21 ... 100
451
C/C++ / Re: array muy grande
« en: Martes 23 de Noviembre de 2010, 10:20 »
Sí, pero creo que te estás confundiendo en otro tema. Que un array sea de tipo int no significa que sólo soporte 32768 elementos. Eso es el rango de cada elemento (si lo declaras como unsigned int tienes el doble de rango de número positivos pero sin números negativos). El array puede ser todo lo grande que quieras (hasta el máximo que permita size_t creo recordar). Por ejemplo:

Código: C
  1. // Reservando 2 GiB de memoria
  2. int* a = (int*)malloc(0x80000000);
  3.  
  4. // Comprobando que malloc() ha reservado la memoria requerida
  5. if (a == NULL)
  6. {
  7.     // Tratamiento de error
  8. }
  9. else
  10. {
  11.     // Inicializando el bloque con datos (ojo que puede llevar tiempo)
  12.     int i;
  13.     for (i = 0; i<0x80000000; i+=sizeof(int))
  14.     {
  15.         a[i] = i;
  16.     }
  17. }
  18.  
Aquí reservas 2 GiB de memoria y los rellenas con diferentes números. También puedes usar memset() si vas a tener grandes cachos de memoria con un mismo valor.

Saludos

452
C/C++ / Re: Dónde sacar por pantalla
« en: Martes 23 de Noviembre de 2010, 10:05 »
No existe ninguna manera estándar de hacer eso. Puedes probar con gotoxy() pero sólo vale para ciertos entornos (como Windows).

453
C/C++ / Re: polimorfismo y encapsulamiento
« en: Martes 23 de Noviembre de 2010, 02:08 »
Polimorfismo: un mecanismo de herencia en POO, tal que

Código: C++
  1. class Coche {};
  2. class Renault: class Coche {};
  3. class Peugeot: class Coche {};
  4.  
  5. Coche* polimorfo = new Renault();
  6. delete polimorfo;
  7. Coche* polimorfo = new Peugeot();
  8. delete polimorfo;
  9.  
Creo que un caso de uso queda claro con este ejemplo. Te recomiendo que te mires también los métodos virtuales en este contexto.

Encapsulamiento: aislar los atributos de las demás clases. Generalizando, limitar el acceso a los datos a los métodos de la misma clase, haciendo que cada clase siempre ofrezca acceso a sus datos a través de métodos y no directamente. Por ejemplo:

Código: C++
  1. class Coche
  2. {
  3. private:
  4.     int velocidad;
  5. public:
  6.     int obtenerVelocidad();
  7. };
  8.  
  9. int Coche::obtenerVelocidad(void)
  10. {
  11.     return velocidad;
  12. }
  13.  
  14. Coche cochazo;
  15. // El encapsulamiento nos prohibe hacer esto
  16. cout << cochazo.velocidad;
  17. // pero si nos deja hacer esto
  18. cout << cochazo.obtenerVelocidad();
  19.  
Esto es para asegurar de que el acceso a los datos se hace siempre con control de la clase, así nunca terminará con datos en estados corruptos o desconocidos para la clase misma. Esto implica que los atributos deben ser como mínimo protected salvo casos muy especiales.

Para más detalles y formalidades:

Polimorfismo
Encapsulamiento

Saludos

454
C/C++ / Re: array muy grande
« en: Martes 23 de Noviembre de 2010, 01:51 »
Puedes dividirlo en un array de arrays bidimensionales (un array tridimensional) por ejemplo.

455
Python / Re: Contar digitos de un entero
« en: Lunes 22 de Noviembre de 2010, 21:38 »
¿7? ¿Por qué 7?

456
C# / Re: validar login y contraseña
« en: Lunes 22 de Noviembre de 2010, 20:10 »
Ojo no vayas a hacer algo destinado al público con esto. Las contraseñas siempre deben ir cifradas.

Saludos

457
Windows / Re: recuperar cuenta hotmail
« en: Lunes 22 de Noviembre de 2010, 20:09 »
Lo mejor que puedes hacer es contactar el servicio técnico de Hotmail. Siento no poder ayudarte más.

458
C++ Builder / Re: Invalid pointer operation
« en: Lunes 22 de Noviembre de 2010, 20:04 »
No. Primero te refieres a char*, que no es char. Segundo, tienes que reservar la memoria necesaria para ello, es decir:

Código: C
  1. char aux[256];
  2. strcpy(aux, SourceFile->FileName.c_str());
  3. strcat(dPath,".ac3");
  4.  
Ten en cuenta que char[] es lo mismo que char*. Ahí te cabrían como máximo 255 caracteres de ruta (+1 caracter nulo de terminación obligatorio). Eso sí, el espacio reservado siempre serán 256 bytes (chars), independientemente de si la ruta tiene 5 o 255 caracteres. Como optimización podrías primero comprobar la longitud de la ruta y luego reservar la memoria correspondiente (que es lo que se haría internamente con el ejemplo de Eternal Idol) usando malloc(), sólo que habría que estar al loro y liberarla una vez hayas acabado de usarla.

La mejor opción sin duda es la que te indica Eternal Idol, ya que es con C++ (que es lo que estás usando) y no C a pelo (que es como quieres hacerlo).

Saludos

459
C/C++ / Re: Programa en c++
« en: Lunes 22 de Noviembre de 2010, 18:00 »
Esto se aplica a todos los foros. Léete las normas y los consejos aquí: viewforum.php?f=1

Saludos

460
C/C++ / Re: Programa en c++
« en: Lunes 22 de Noviembre de 2010, 10:29 »
Usa las etiquetas de código y pon el codigo formateado si esperas que alguien gaste su tiempo en leer eso.

461
Windows / Re: recuperar cuenta hotmail
« en: Domingo 21 de Noviembre de 2010, 01:20 »
La pregunta de siempre: ¿y cómo sabemos con certeza que la cuenta es tuya?  :P

Hotmail provee mecanismos para recuperar tu contraseña, como las preguntas de seguridad.

462
Oracle / Re: ¿Se puede usar oracle para bases de datos offline?
« en: Domingo 21 de Noviembre de 2010, 01:16 »
Cita de: "nax"
si no me equivoco, con acces tu copias el archivo en la instalación
"C:archivos de programami juegomibd.mdb"
y ya la podias tratar sin tener que instalar nada...
Perdona, pero sí tienes que instalar Access  :P

463
Efectivamente, funciona. Pero restringir opciones al usuario porque no conoces el lenguaje es una pésima práctica y muy poco profesional.

464
La taberna del BIT / Re: me presento
« en: Sábado 20 de Noviembre de 2010, 19:00 »
Bienvenido, espero que podamos aprender juntos  :good:

465
Java / Re: Comprobar Valor de Variable en Java
« en: Sábado 20 de Noviembre de 2010, 18:47 »
Lo de los puntos de parada creía que ya lo sabías. Para comprobar el valor de una expresión en un momento dado es obvio que tienes que parar la ejecución. Te aconsejo que le eches un vistazo igualmente a la ventana de expresiones que te digo.



Saludos

466
Visual C++ / Re: Escritura en fichero XML desde Visual c++ 2008
« en: Sábado 20 de Noviembre de 2010, 12:13 »
Sí, tienes razón. Disculpa el malentendimiento. Ya nos cuentas qué tal con TinyXML  ;)

467
C/C++ / Re: cómo se accede a una funcion de una dll mediante GetProcAddr
« en: Sábado 20 de Noviembre de 2010, 12:10 »
Yo nunca he programado para Windows con C++, pero si es un puntero lo que te devuelve será un puntero con el resultado, no un puntero a función, ya que entonces no tendría mucho sentido pasarle los argumentos. Si es así, prueba con

Código: C++
  1. int* retorno;
  2. retorno=ProcAdd(L"a,b");
  3. cout<<*retorno;
  4.  

468
C/C++ / Re: cómo se accede a una funcion de una dll mediante GetProcAddr
« en: Sábado 20 de Noviembre de 2010, 11:53 »
Cita de: "black_flowers"
"too many arguments for call"
Hombre, creo que el error es explicativo por sí mismo: "demasiados argumentos para la llamada". Eso quiere decir que estás pasando más parámetros de los que admite la función.

469
Java / Re: Comprobar Valor de Variable en Java
« en: Sábado 20 de Noviembre de 2010, 11:49 »
Tienes que lanzar el programa en modo Debug y abrir dicha vista. Ahí tienes una ventana "Expresiones" en la que puedes arrastar cualquier expresión (no sólo variables) y conocer su valor.

Saludos

470
C# / Re: Problema Con CommandEventHandler
« en: Viernes 19 de Noviembre de 2010, 19:13 »
SI te leyeras las normas, posiblemente conseguirías mucha más ayuda. Comienza por poner tu código con etiquetas y darle formato. Así no hay quien se moleste en leerlo.

Saludos

471
C/C++ / Re: ¿Parar ejecución o capturar el error?
« en: Viernes 19 de Noviembre de 2010, 19:01 »
Cita de: "Epa"
Si el programador no controla los errores, entonces es problema de el, no de la libreria.
En ese caso es pésimo programador.

Cita de: "jaumegs"
A mi entender la dos palabras son igual de adecuadas.
De hecho, tienes razón tú: http://es.wikipedia.org/wiki/Librer%C3% ... %C3%B3n%29. Librería es erróneo. Mis disculpas.

472
Pascal / Re: Ejercicio con procedimientos.
« en: Viernes 19 de Noviembre de 2010, 18:57 »
Hombre, la solución más inmediata y sencilla es recorrer todos los números hasta el tope marcado comprobando cada número si es múltiplo sincero.

473
Pascal / Re: Ejercicio con procedimientos.
« en: Viernes 19 de Noviembre de 2010, 16:42 »
¿La base puede ser cualquier número entero positivo?

474
C/C++ / Re: ¿Parar ejecución o capturar el error?
« en: Viernes 19 de Noviembre de 2010, 15:41 »
Cita de: "jaumegs"
¿Cuál debe ser la respuesta de dicha función? ¿Abortar la ejecución o devolver un código de error?
Siendo una librería (no biblioteca), debe devolver un código de error y dejar que la aplicación decida qué hacer. Es decir, el rol de una librería es ofrecer servicios, no controlar el flujo de ejecución de la aplicación o decidir por ella. En todo caso podría tomar un argumento que indique su comportamiento, pero es superfluo ya que eso lo puede decidir la aplicación.

475
Pascal / Re: Ejercicio con procedimientos.
« en: Viernes 19 de Noviembre de 2010, 15:38 »
¿Puedes poner una definición más formal de "múltiplo sincero"? Jamás en la vida había oído tal definición, lo siento.

Páginas: 1 ... 17 18 [19] 20 21 ... 100