Menú

Mostrar Mensajes

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

Mostrar Mensajes Menú

Mensajes - do-while

#331
¡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 C/C++ / Re: Memory Leak en código
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:


vector* create_vector( int n, float* data ) {
       vector* v;
       v = (vector*) malloc(sizeof( vector )); //creamos un puntero a una instancia del struct        
       v->data = data;                                        
       v->dim = n;                                     //inicializamos dim de v, numero de posiciones
       return v;                                       //devolvemos v
}

//...
void destroy_vector( vector* v ) {
       free( v->data );
       free( v );              //desalojamos la memoria reservada
     
}


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í:

vector* create_vector( int n, float* data ) {
       vector* v;
       v = (vector*) malloc(sizeof( vector )); //creamos un puntero a una instancia del struct
       v->data = (float*) malloc(n * sizeof(float));
       memcpy(v->data, data, n * sizeof(float));
       v->dim = n;                                     //inicializamos dim de v, numero de posiciones
       return v;                                       //devolvemos v
}


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:

int contarcomas(char* cadena){
       int j = 1;                            //inicializando en 1 nos ahorramos contar el primer carácter que es un [
       int c = 1;                            // numero de comas                                  
       while(cadena[j] != ']'){              //contar comas
               if(cadena[j++] == ','){ //Siempre hay que incrementar j. Lo hacemos directamente aquí.
                       c++;
               }
       }
       return c;
}


¡Saludos!
#333
¡Viva la república bananera de Españistan!
#334
¡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
¡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
¡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
¡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
¡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
Foro Libre / Re: ¿Qué tal se vive en Pamplona?
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 C/C++ / Re: Reemplazar conio.h
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!