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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


  Mostrar Mensajes
Páginas: 1 ... 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 [34] 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 ... 122
331  Foros Generales / Noticias / Re: Siete programas que, sorprendentemente, siguen existiendo en: 4 Noviembre 2014, 10:59 am
¡Toma ya!

Mirc + Ircap + #trivial-pursuit = Una inmensidad de horas perdidas delante del ordenador...

Hay que ver como pasa el tiempo...

¡Saludos!
332  Programación / Programación C/C++ / Re: Memory Leak en código en: 1 Noviembre 2014, 11:46 am
¡Buenas!

La verdad es que bucear en un código ajeno es una locura.

Veo cosas raras como esta:

Código
  1. vector* create_vector( int n, float* data ) {
  2.        vector* v;
  3.        v = (vector*) malloc(sizeof( vector )); //creamos un puntero a una instancia del struct        
  4.        v->data = data;                                        
  5.        v->dim = n;                                     //inicializamos dim de v, numero de posiciones
  6.        return v;                                       //devolvemos v
  7. }
  8.  
  9. //...
  10. void destroy_vector( vector* v ) {
  11.        free( v->data );
  12.        free( v );              //desalojamos la memoria reservada
  13.  
  14. }
  15.  

A los datos les estás asignando un vector ajeno a la estructura, pero luego intentas liberar la memoria dentro de la propia estructura. La verdad es que no es coherente. Si el vector de datos es un vector exterior a la estructura, libera su memoria fuera de la estructura, o lo que me parece más lógico, crea dentro de la estructura de datos la memoria suficiente para almacenar los datos del vector que pasas en el "constructor" y luego copias su contenido en la memoria que acabas de reservar. Así tienes localizada cualquier asignación dinámica de memoria dentro de la propia estructura de datos y todo está más claro.

La cosa quedaría algo así:
Código
  1. vector* create_vector( int n, float* data ) {
  2.        vector* v;
  3.        v = (vector*) malloc(sizeof( vector )); //creamos un puntero a una instancia del struct
  4.        v->data = (float*) malloc(n * sizeof(float));
  5.        memcpy(v->data, data, n * sizeof(float));
  6.        v->dim = n;                                     //inicializamos dim de v, numero de posiciones
  7.        return v;                                       //devolvemos v
  8. }
  9.  

Luego, si el parámetro data que recibe esta función ha sido creado utilizando memoria dinámica, la liberas cuando esa variable no te haga mas falta o antes de que salga de su ámbito.

Si ordenas bien las ideas y el código te ahorraras bastantes quebraderos de cabeza. Revisa bien el código viendo donde asignas memoria y comprobando que liberas toda la que asignas.

¡Saludos!

PD: Te dejo un código un poco más claro para una de las funciones:
Código
  1. int contarcomas(char* cadena){
  2.        int j = 1;                            //inicializando en 1 nos ahorramos contar el primer carácter que es un [
  3.        int c = 1;                            // numero de comas                                  
  4.        while(cadena[j] != ']'){              //contar comas
  5.                if(cadena[j++] == ','){ //Siempre hay que incrementar j. Lo hacemos directamente aquí.
  6.                        c++;
  7.                }
  8.        }
  9.        return c;
  10. }
  11.  

¡Saludos!
333  Foros Generales / Noticias / Re: Así nos afectará la recién aprobada reforma de la Ley de Propiedad Intelectual en: 31 Octubre 2014, 14:27 pm
¡Viva la república bananera de Españistan!
334  Programación / Programación C/C++ / Re: Libreria graphics.h para CodeBlocks en: 29 Octubre 2014, 14:27 pm
¡Buenas!

Si quieres utilizar esa librería, creo que solo la tienes en los compiladores de Borland y en DJGPP, pero creo que los programas que la utilizan tienes que compilarlos en 16 bits... y en sistemas de 64 creo que los de 16 no funcionan.

¡Saludos!
335  Sistemas Operativos / GNU/Linux / Re: ¿Conocéis algún sustituto de udisks2 que no utilice systemd? en: 28 Octubre 2014, 21:44 pm
¡Buenas!

Lo que no sé es si también me he cargado algún archivo de configuración...  :silbar:

De momento he encontrado esto. Cuando me despegue la pereza de entre las neuronas me pondré a configurar cosas... de momento me apaño con el terminal  :xD

¡Muchas gracias por todo!
336  Sistemas Operativos / GNU/Linux / Re: ¿Conocéis algún sustituto de udisks2 que no utilice systemd? en: 27 Octubre 2014, 19:19 pm
¡Buenas!

Gracias por la información. Tanto usbmount como autofs me montan los dispositivos. De momento les veo tres pegas. Que montan en modo root, que mount no sabe que hay algo montado (por lo menos umount dispositivo me dice que no hay ningún dispositivo montado con ese nombre) y que thunar no se entera de que hay algo montado. Mañana investigo sobre el tema (hoy ya estoy saturado) y os cuento como acaba la historia.

¡Gracias por todo!

PD: Por cierto, acabo de comprobar que una vez eliminado del todo systemd (el primer remove lo quita parcialmente, no es hasta el siguiente reinicio cuando remove lo quita del todo (o por lo menos así lo he hecho yo)), se puede instalar lightdm sin que se reinstale systemd... (no lo entiendo...). En la máquina virtual, instalar lightdm implicaba instalar systemd...  :huh:

¡Saludos!
337  Foros Generales / Noticias / Re: Softonic prepara un ERE para despedir a la mitad de la plantilla en: 27 Octubre 2014, 18:53 pm
¡Buenas!

Creo que la única razón de su descalabro es algo que ya habéis comentado. Yo mismo dejé de utilizar Softonic en cuanto empezaron a repartir ejecutables que descargaban el contenido en lugar de distribuir directamente el archivo que quería. De hecho, en cuanto me encontré con el primer ejecutable, ni lo abrí. Busqué el archivo que me interesaba en otra parte y listo. Supongo que poco a poco la gente habrá ido dejando de lado Softonic por las mismas razones.

¡Saludos!
338  Sistemas Operativos / GNU/Linux / ¿Conocéis algún sustituto de udisks2 que no utilice systemd? en: 27 Octubre 2014, 18:38 pm
¡Buenas!

Estoy apañando Debian Jessie para intentar funcionar sin systemd, volviendo a sysvinit. Por los experimentos que he hecho en una máquina virtual, se puede tener un sistema funcional con xfce, slim como display manager y sustituyendo network-manager por wicd, así que le he metido mano al sistema del día a día y he realizado esos cambios. Ahora me acabo de dar cuenta de que al conectar cualquier dispositivo USB tengo que montarlo a mano (aún no he probado con los CDs). Al cargarme systemd también ha volado udisks2. He intentado instalar udevil pero también intenta instalarme systemd.

La cuestión es saber si conocéis alguna utilidad que monte dispositivos USB/opticos de forma automática sin depender de systemd o si al final me tengo que resignar a montarlos a mano.

¡Saludos!
339  Foros Generales / Foro Libre / Re: ¿Qué tal se vive en Pamplona? en: 18 Octubre 2014, 11:36 am
¡Buenas!

Yo creo que es una ciudad muy tranquila. Como ya te han dicho, un poco cara. Si te gusta la gastronomía, en la parte vieja, al menos en los alrededores de la Plaza del Castillo tienes buenos sitios de tapas. Eso sí. Cuando lleguen San Fermines, ¡HUYE!

¡Saludos!
340  Programación / Programación C/C++ / Re: Reemplazar conio.h en: 12 Octubre 2014, 14:00 pm
¡Buenas!

Si quieres ceñirte a lo que es estandar, puedes descargarte el libro "Como programar en C/C++" de Deitel & Deitel. La parte de C es bastante completa. Olvidate de estudiar C++ con este libro. Está completamente desfasado.

¡Saludos!
Páginas: 1 ... 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 [34] 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 ... 122
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines