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

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


  Mostrar Mensajes
Páginas: 1 ... 62 63 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 ... 235
761  Programación / Programación C/C++ / Re: ¿Por qué se detiene en el segundo registro? en: 16 Septiembre 2016, 13:44 pm
La condicion de tu do-while esta mal.


Código
  1. do{
  2. // Omitido
  3. printf("\nDesea regresar al menu?\n1.Regresar al menu / 2.Salir: ");
  4.    scanf("%d", &OP);
  5. }  while(i=0,i<10,i++);


Cuando deberia de ser
Código
  1. do{
  2. // Omitido
  3. printf("\nDesea regresar al menu?\n1.Regresar al menu / 2.Salir: ");
  4.    scanf("%d", &OP);
  5. }  while(OP !=2);

Saludos!


762  Programación / Programación C/C++ / Re: Pasar/Recibir arreglo bidimensional en diversas funciones (Lenguaje C) en: 16 Septiembre 2016, 00:30 am
Donde termina tu funcion menu?

falta un } para el switch o para la funcion, ademas ya estando en tu funcion llenarNomina no se que realice.. tal vez tratas de escribir fuera de los limites de la memoria o algun otro tipo de error.

saludos!
763  Programación / Programación C/C++ / Mejor forma de procesar una cadena de formato [Cantidad de memoria] en: 16 Septiembre 2016, 00:12 am
Buenas!!

Estoy haciendo un pequeño servidor WEB en C, algo basico y como ejercicio, ya que este algo pulido dejare el link al codigo por aqui.


El detalle que me encuentro es que quiero crear una función de argumentos variables asi como el printf donde le ahorre al usuario "final" ( :rolleyes: :rolleyes:) el reservar memoria para el buffer de respuesta al cliente. para ello solo creare una función llamada "server_print" donde el usuario colocara su formato de cadena y las variables que el quiera. Y que la función haga el trabajo duro...

session es un contenedor de variables auxiliares y ese de momento, se puede obviar...

Código
  1. void server_print(struct peticion *session,char *format,...) {
  2. char *buffer = NULL;
  3. int X;
  4. va_list args;
  5. va_start(args, format);
  6. buffer =malloc(X);
  7. vsnprintf(buffer,X,format, args);
  8.  
  9. //realizar operaciones sobre session...
  10.  
  11.  
  12. va_end(args);
  13. }
  14.  

Lo que me interesa saber es el cuando debe de valer X para reservar esa cantidad de memoria exacta.. el detalles esta en que puedo ahórrame el "pensar" y asignar MUCHA memoria por cada argumento del programa, pero el detalle esta en que:

¿Que pasa si no alcanza?

Quiero tener un programa eficiente que no malgaste memoria y sea rápido...

Se me ocurre buscar en la cadena de formato por cada % que se encuentre y por ejemplo si es un Entero reservar solo 12 bytes mas, si es cadena sacar el strlen del argumento en cuestion, si es %l dejar sobre 30 bytes mas y asi...

¿Como procederían ustedes?

Saludos!
764  Programación / Programación C/C++ / Re: Pasar/Recibir arreglo bidimensional en diversas funciones (Lenguaje C) en: 16 Septiembre 2016, 00:00 am
Hola tienes que declarar primero el arreglo antes de llamar a las funciones mencionadas

Ejemplo:

Código
  1. void menu(){
  2. int N[filas][columnas];
  3.   int opc;
  4.   printf("MENU\n");
  5.   printf("1. Nueva Nomina\n");
  6.   printf("2. Mostrar Todas las Nominas\n");
  7.   printf("Ingrese opcion: ");
  8.   scanf("%d",opc);
  9.  
  10.   switch(opc){
  11.      case 1:
  12.         /*Estoy tratando de hacer que cuando ingrese a la opcion 1, vaya directamente a la función llenarNomina*/
  13.         llenarNomina(N); // Aca me da un severo error
  14.         break;
  15.      case 2:
  16.         mostrarNomina(N);
  17.         break
  18.      default:
  19.         printf("Opcion Incorrecta");
  20. }
765  Programación / Programación C/C++ / Re: hacer mas corto el programa y si esta bien hecho en: 15 Septiembre 2016, 21:40 pm
La de numeros se puede mejorar

Código
  1. if (a[i]>='0' && a[i]<='9' )

ahora cambia el gets por fgets:

Código
  1. fgets(cad,500,stdin);

ya que con el gets eres vulnerable a buffer overflow (Si le metes mas de 500 caracteres vas a sobre escribir variables del programa)

Saludos!
766  Programación / Programación C/C++ / Re: Tutorial de archivos en lenguaje C. - en: 15 Septiembre 2016, 16:57 pm
Tu idea esta bien, te sirve bastante si no quieres estar moviendo los registros "fisicamente" en su posicion del archivo.

Asi solo guardas en un arreglo externo que el registro X del archivo esta en el orden TAL.

Y podrias implementar una busqueda casi binaria por ejemplo tienes 1000 Registros y buscas por la letra T o no se la palabra tocar, vez quien es el registro 500 y si la palabra tocar es mayor te desplazas 250 registros mas adelante y buscas en el registro 750 y si es mayor o menor te desplazas 125 registros adelante o atras y asi sucesivamente. Para buscar rapidamente la palabra tal....

Saludos!

767  Programación / Programación C/C++ / Re: [C++]Cpr - cURL para humanos en: 15 Septiembre 2016, 16:42 pm
Tienes que agregar parametros de linkeo al compilador esto es:

Código:
g++ -o test test.cpp `curl-config --cflags` `curl-config --libs`

si ejecutas
Código:
curl-config --libs
te deberia de devolver algo -lcurl -L/usr/.....

Eso es lo que falta para incluir el Curl
768  Foros Generales / Foro Libre / ¿Cuantos trackers puede tener un torrent? en: 15 Septiembre 2016, 00:24 am
Estoy desarrollando una app y ahora tengo que poner un limite al numero de trackers que puede tener un torrent.

En teoria no debería de tener limite lo se, pero si vemos la mayoria de los links magnet en TPB solo vienen con unos 3 o 5 trackers

Pero no encuentro ningun documento que especifique un limite claro.

En mi caso he optado por 16 trackers esto solo lo pregunto para optimizar el tamaño de almacenamiento, ya en ejecucion puede crecer lo que sea necesario.

Saludos
769  Programación / Programación C/C++ / Re: Ejercicio de Structs, me da basura no se porque en: 14 Septiembre 2016, 17:12 pm
El unico error que veo es el del scanf, que ... volvemos al Retorno de Linea que el scanf no procesa y lo termina agarrando el getche...

Cuanto ingresas un valor 10+Enter estas ingresando lo siguinte:

Código:
10\n\r

No recuerdo si es \n\r o \r\n el punto es que son 2 valores los que se manda cuando das un Enter

Entonces el Scanf procesa los números 10 y cuando detecta el primer caracter no numerico se detine y deja colgando un byte adicional en el buffer y este llega al getche y lo guarda en tu variable carta.palo

Entonces deberia de poner algo asi:

Código
  1. void CARGA(t_carta carta)
  2. {
  3.    printf ("Ingrese el numero de la carta: \n");
  4.    scanf("%d",&carta.numero);
  5.    getche(); //o getchar(); lo que quieras, es solo para que leas el byte mas que esta en tu buffer de entrada
  6.    printf ("\nIngrese el palo:  E = ESPADA  || O = ORO || C = COPA || B = BASTO \n");
  7.    carta.palo=getche();
  8.    printf("\nIngrese el valor de la carta: \n 1 de espada = 10\n1 de Basto = 9\n7 Espada = 8\n7 Oro = 7\n3 = 6\n2=5\n1=4\nFiguras=3\n7 Otro = 2\nLo Demas=1\n");
  9.    scanf("%d",&carta.valor);
  10. }

Saludos!
770  Programación / Programación C/C++ / Re: Validando peticion GET manualmente en: 14 Septiembre 2016, 00:08 am
Citar
Oh, y yo dejaría de usar ese strtok cuanto antes. Si es un servidor, es probable que pretendas hacerlo multi-thread.

Muy bien acabo de ver los problemas que implica y al parecer no debo de usarlo xD usare strtok_r en su lugar con un 3 parametro para salvar el estado de la funcion.

Saludos
Páginas: 1 ... 62 63 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 ... 235
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines