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 2 3 4 5 6 7 8 9 10 11 12 [13] 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ... 161
121  Programación / Programación C/C++ / Re: Problema con comparar cadenas en: 28 Abril 2021, 18:52 pm
Entiendo que cuándo eliges sí el problema es que no te pide otra cadena.

Cambia la cadena del scanf  de la selección por
Código:
scanf("%d%*c", &op);

Un asterisco después del % hace que se consuma esa entrada pero no la cargue en ninguna variable. En este caso se consume el último carácter que es el '\n' del return. Si no lo haces se queda en la caché del teclado y el siguiente scanf (que en tu caso pide una nueva cadena) encuentra el carácter de nueva línea y lo carga en la variable.
122  Programación / Programación C/C++ / Re: cast Void pointer en c en: 26 Abril 2021, 16:04 pm
Si se me permite un inciso, y por lo que sé, todos los punteros en C (repito: punteros) tienen el mismo tamaño: un tamaño capaz de guardar una dirección de memoria.
Otra cosa es el tipo del puntero: éste le dice al compilador el tamaño del dato al que se apunta para que cuándo se dereferencíe tome tantos bytes de la memoria a partir de la dirección del puntero para trabajar con él.
Es decir, un puntero en sí da igual que sea int, long, unsigned, o una función de muchos parámetros, es solo una dirección de memoria.
Por eso el void* puede convertirse en cualquier cosa, porqué únicamente guarda la información de la dirección, no del tamaño del dato y por eso el compilador necesita el cast, para saber cuántos bytes toma el dato que se guarda allí.
En los sistemas en modo real un puntero puede apuntar a cualquier sitio: a la memoria gráfica, a alguna parte del sistema operativo, a otros programas... y lo peor es que dejaba escribir allí. Por eso durante tanto tiempo los punteros eran una cosa muy temida, no académicamente, sino porqué podían causar auténticos desastres. También los virus tenían más acceso a la máquina.
Ahora con las protecciones propias del procesador y del sistema operativo un puntero mal dirigido lo único que puede conseguir es que el sistema cierre el programa.
123  Programación / Programación C/C++ / Re: Ayuda con codigo en: 22 Marzo 2021, 23:58 pm
Es más, eso no sería una variable sino una función ya que realiza un trabajo, no  guarda un valor per se.
124  Programación / Programación C/C++ / Re: [Consulta / Duda] Desplazando más de 31 bits en: 14 Marzo 2021, 12:20 pm
Me gustó tu ejercicio. Aquí una solución mía:

Código
  1. #include <stdio.h>
  2. #include <stdbool.h>
  3. #include <stdint.h>
  4.  
  5. uint64_t complemento_a_2(uint64_t num) {
  6.    return (num ^ -1) + 1;
  7. }
  8.  
  9. /**
  10.  * Devuelve el valor de una resta realizada con
  11.  * complemento a dos en forma humana. Los operandos deben
  12.  * ser positivos por trabajar a nivel de bits
  13.  * a: minuendo
  14.  * b: sustraendo
  15.  * c: puntero a la variable que contendrá el resultado
  16.  * retorna: true si el resultado es negativo; false si es positivo
  17.  */
  18. bool resta(uint64_t a, uint64_t b, uint64_t *resultado) {
  19.    bool signo;
  20.  
  21.    *resultado = a + complemento_a_2(b);
  22.    signo = *resultado >> (sizeof(uint64_t) * 8 - 1);
  23.    if(signo) {
  24.        *resultado = complemento_a_2(*resultado);
  25.    }
  26.  
  27.    return signo;
  28. }
  29.  
  30. int main() {
  31.    uint64_t a = 3, b = 7, resultado;
  32.  
  33.    if(resta(a, b, &resultado)) {
  34.        putchar('-');
  35.    }
  36.    printf("%I64u\n", resultado);
  37. }
  38.  
125  Programación / Programación C/C++ / Re: creando hilos en windows en: 15 Enero 2021, 20:18 pm
Al igual que Linux tiene man, Microsoft tiene su propia documentación de su API. La de la función a que te refieres es la siguiente: https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-createthread
Está bien explicada, sus parámetros, su valor de retorno, un ejemplo explicado...
126  Programación / Programación C/C++ / Re: Me pisotean las variables en: 12 Noviembre 2020, 17:17 pm
Pon el código que se encarga de leer todos los datos del fichero.
127  Programación / Programación C/C++ / Re: consulta sobre esta sintaxis.. en: 15 Septiembre 2020, 15:34 pm
Normalmente si buscas la API de los frameworks encuentras la respuesta. En este caso: https://docs.panda3d.org/1.10/cpp/programming/using-cpp/reference-counting
128  Programación / Programación C/C++ / Re: Ayuda con programa en-lenguaje en c o c++ en: 15 Septiembre 2020, 14:41 pm
Se me ocurre un árbol binario con dos datos:
Un entero que representa el ID del animal.
Un campo de bits de dos bits (o un entero que representa banderas) indicando si nadó en el primer mar y en el segundo.

Funciona así:

Cuando recibes el ID de un animal primero miras si está en el árbol. Si no está lo añades: a la rama de la izquierda si el número es menor al del nodo y a la derecha si el número es mayor al del nodo. Si no conoces el algoritmo hay muchos ejemplos en internet.
Ahora indicar en que mar a ha nadado usando el cambo de bits (o las banderas).

Una vez que has consumido todas las entradas vuelves a recorrer el árbol informando únicamente de los nodos que tienen han tienen los dos campos de bits activos (o un 3 si has usado un entero para banderas).
129  Programación / Programación C/C++ / Re: Error undefined reference to CodeBlocks Allegro c++ en: 14 Septiembre 2020, 16:38 pm
Para mí que no encuentra el resto de archivos de la librería. ¿Tal vez te falta definirlo en los parámetros de compilación?
130  Programación / Programación C/C++ / Re: error a la hora de ingresar una cedula que comience con el numero 22 ++ en: 11 Agosto 2020, 14:07 pm
Acuérdate del valor máximo que pueden tener las variables escalares: 2,147,483,647 es el valor máximo para un entero con signo de 32 bits.
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 [13] 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ... 161
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines