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 ... 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 [79] 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 ... 235
781  Foros Generales / Foro Libre / Re: Poner los retos que queréis cumplir de aquí a 2 meses!! en: 13 Septiembre 2016, 00:10 am
Tengo desde hace varios meses la idea de una Aplicacion para escritorio y Movil con bastantes alcances y aunque ya he avanzado algo, todavía me falta terminar de armar el rompecabezas de Pedasos de código que tengo hasta ahorita.

Tal vez en 2 meses termine y les comparta la aplicación.

Saludos!
782  Programación / Programación C/C++ / Re: error al crear funcion en: 9 Septiembre 2016, 20:17 pm
Deberias de llamar a la funcion sin los &

Código
  1. velocidadd(inf,x,codigo,&tsg,nom);

Saludos!
783  Programación / Programación C/C++ / Re: Ayuda con Manejo de archivos! en: 9 Septiembre 2016, 16:02 pm
No entra al for de la funcion modificar??

Mira he detectado que abres arbitrariamente el archivo.
Lo abres cuando declaras la variable

Código
  1. empleados=fopen("empleados.txt","rb+");

No hay fclose para el primer fopen ademas vuelves a abrir en

Código
  1. if((empleados=fopen("empleados.txt", "rb+"))!=NULL)

Eso puede dar problemas, por que si ya esta abierto por tu programa te puede dar error de lectura al momento de calular el tamaño de tu archivo. (Cantida de registros) y tal vez por eso no entre al for.

Saludos!
784  Programación / Programación C/C++ / Re: Servidor web escrito en C en: 8 Septiembre 2016, 19:48 pm
Es el mismo sistema y compilador?

Que cambio.

Estoy trabajando en algo similar, pero lo quiero haces mas generico usando una tabla de estados (AUTOMATA) para determinar en que punto de la peticion estoy, ya sea el GET el host, las cookies la conexion entre otros.

Pero mejor no desvio este tema.

Es exactamente el mismo codigo?

Que error te da?

Saludos!
785  Programación / Programación C/C++ / Re: Tutorial de archivos en lenguaje C. - en: 8 Septiembre 2016, 17:55 pm
Citar
Si tengo unos 15.000 registros cual de los 2 métodos utilizarían, o tal vez haya alguna otra manera más eficiente que desconozco

Si tienes esa cantidad de registros yo utilizaria la primera opcion que dijiste, tener un campo donde este marcado si es registro activo, o eliminado.

El detalle esta en que dado que estas usando registros de longitud variable (Modo texto) y no modo binario es la opcion mas adecuada.

Tendrías que tener un programa adiconal que haga el trabajo pesado (Optimizar la base de datos) quitando los registros marcados como eliminados para NO ocupar mas espacio del necesario.

Con registros binarios (DE LONGITUD FIJA) es mas facil ya que es mas rapido dejar un segmento de X tamaño en ceros (NULL) y posteriormente ocuparlo con alguno de los registros nuevos.

Saludos!
786  Sistemas Operativos / Unix/Unix-Like / Re: ¿Que opinan de FreeBSD? en: 6 Septiembre 2016, 22:27 pm
Desde el memstick se puede instalar el entorno gráfico

Código:
pkg install gnome3

o el kde

Saludos
787  Programación / Programación C/C++ / Re: Problema y duda con incremento de punteros en: 6 Septiembre 2016, 20:24 pm
Uno es pre-incremento y el otro es pos-incremento.

El primero ++ptr hace el incremento y despues se guarda el valor resultante como parametro para printf

El segundo ptr++ primero guarda el valor como parametro de printf y luego realiza el incremento.

Saludos!
788  Programación / Programación C/C++ / Re: Tutorial de archivos en lenguaje C. - en: 6 Septiembre 2016, 17:50 pm
Hay varias formas para hacer esto.

Hay que usar la ruta absoluta o la ruta relativa.

Esto es con ruta absoluta:

Código
  1. archivo = fopen("/usr/home/usuario/directorioX/archivo.txt","r");

O con ruta relativa (relativa al directorio actual de trabajo), suponiendo que estemos ya en el directorio usuario y asumiendo que el directorioX exita:
Código
  1. archivo = fopen("./directorioX/archivo.txt","r");

Saludos!
789  Programación / Programación C/C++ / Re: Duda con realloc en: 6 Septiembre 2016, 17:34 pm
Si hay inconveniente ya que si por ejemplo en el realloc se mueve el bloque de memoria a otro lado, b va a seguir con el mismo apuntador.

Esto es

B apunta a 1000 (Direccion de memoria)
Se pide a reelloc que reasigne el espacio para agregar X cantidad adicional a la existente.
Realloc mueve el bloque que estaba en 1000 al bloque 2000 y retorna la nueva dirección de memoria
Si B no se iguala a lo que  devuelva realloc, entonces B seguira apuntado a 1000, si, ahi siguen tus valores anteriores, pero digamos que existe una variable C en la direccion 1003, entonces cuando tu escribas en tu apuntador B en esa posicion, estaras sobreescribiendo la variable C.

Ejemplo en video:



Para ejemplo esta el siguiente codigo:

Código
  1. #include<stdlib.h>
  2. #include<stdio.h>
  3.  
  4. int main() {
  5. int i = 0;
  6. int *B = NULL,*C = NULL;
  7. B = realloc(B,sizeof(int));
  8. C = realloc(C,sizeof(int));
  9. C[0] = 1000;
  10. printf("El valor de C[0] es %i\n",C[0]);
  11. realloc(B,sizeof(int)*10); //NO SE ACTUALIZA B
  12. while(i < 10) {
  13. B[i] = 1337;
  14. i++;
  15. }
  16. printf("El valor de C[0] es %i\n",C[0]);
  17. }

Salida:

Código:
El valor de C[0] es 1000
El valor de C[0] es 1337

Como vemos, por lo menos en mi computadora el valor de C es sobreescrito y termina con Error de segmento, colgandose el programa.



Saludos!
790  Programación / Programación C/C++ / Re: Duda con realloc en: 6 Septiembre 2016, 16:58 pm
 ¿Que es lo que ocurre si hago free ( b ); y continuo usando a?

al hacer free, el programa marca el segmento de memoria dado como libre y si lo sigues usando podria ser sobreescrito en cualquiero otro momento por otra variable de tu programa.

¿El valor de retorno de realloc apunta a la nueva dirección con los datos que contenía el primer argumento (en este caso a[0] debería ser 20 y tendría que tener espacio para un int más)?


Si el valore regresado es el nuevo, podria ser el mismo o no, sin embargo veo que estas asignando a la variable "a" pero sigues usando "b", en el caso de que te devuelva una direccion diferente, b ya no aputara mas a un rango de memoria "asignado". b continua con una copia vieje del apuntador.

Y en el caso del printf deberia de ser asi:

Código
  1. printf ("%p\n%p\n", a, b);


Por cierto asegurate de Inicializar la variable que le pasas por primera vez a realloc en NULL ya que es posible que contenga basura en la memoria y te marque segment fault
Tengo aqui un video que realice sobre el tema:



Saludos!
Páginas: 1 ... 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 [79] 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 ... 235
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines