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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


  Mostrar Mensajes
Páginas: 1 ... 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 [54] 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 ... 161
531  Programación / Programación C/C++ / Re: Corregir este error con Win32 en: 7 Abril 2018, 13:40 pm
Eso es que el compilador encuentra peligrosa strcat y te dice que puede provocar el desbordamiento del búffer, precisamente lo que queremos hacer. Para ello te pide que desactives los warnings

Escribe
Código:
#define _CRT_SECURE_NO_WARNINGS
como primera línea del programa para saltarte esa protección.
532  Programación / Programación C/C++ / Re: Corregir este error con Win32 en: 7 Abril 2018, 12:53 pm
No es error de tiempo de compilación, pero puede llevarte a errores en tiempo de compilación por buffer overflow. Una cadena bien construida podría permitir la ejecución de código arbitrario (supongo que te suena esto). Por lo normal, si se escribe una cadena lo suficientemente larga el S.O. generará una excepción  porqué se ha intentado escribir en un área no admitida de memoria.

Para ver los efectos del desbordamiento de buffer:
Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int i;
  5.  
  6. int main() {
  7.    int a = 0;
  8.    char b[] = "\0";
  9.    int c = 0;
  10.  
  11.    for(i=0; i<10;++i) {
  12.        strcat(b, "a");
  13.        printf("b = %s\n", b);
  14.        printf("a = %d\nc = %d\n\n", a, c);
  15.    }
  16. }
533  Programación / Programación C/C++ / Re: Corregir este error con Win32 en: 7 Abril 2018, 12:16 pm
No te lo va a arreglar pero hay un error bastante malo:
Código:
char entrada[] = "\0";
Hace que la cadena 'entrada' solo aloje espacio para un (1) único carácter. Cualquier adquisición de una cadena diferente provocará un desbordamiento pues al capturar una cadena de un (1) único carácter estarás guardado dos (2) el que te interesa seguido del carácter nulo ('\0').
534  Programación / Programación C/C++ / Re: Estructura de datos en C en: 4 Abril 2018, 20:04 pm
Son muchos conceptos así que ¿qué parte no entiendes?
¿Su concepto?
¿Los punteros?
¿Cómo se funcionan?
¿Cómo se desarrollan?

Lo digo porque sabes, a lo mejor, sabes que es una pila pero como fallas en punteros no ves como se desarrolla o sabes de punteros pero no ves diferencia entre pila y lista enlazada.
¿Qué te falla?
535  Programación / Programación C/C++ / Re: Matrices en C++ ayuda en: 3 Abril 2018, 15:21 pm
Pon lo que llevas hecho.

Después verás que igual que la formas la escribes.
536  Programación / Programación C/C++ / Re: Violacion segmento en C Linux en: 30 Marzo 2018, 16:16 pm
No deberías escribir en argv, es para pasarle información al programa.
Cuando uses strcat, strcpy y toda esta lista de instrucciones asegúrate de que el destino tiene el tamaño suficiente como para alojar la cadena de origen.

Para tu caso lo mejor sería crear un búffer que pudiera alojar toda la cadena, algo así como
Código:
char buffer[255] = {0};
for (int i=1; i<argc; ++i)
    strcat(buffer, argv[i]);
537  Programación / Programación C/C++ / Re: Problema con pantalla completa en SDL2 en: 26 Marzo 2018, 23:26 pm
Has cambiado el while por el if?
Ya, y al pasarle con otra ventana por encima se queda dibujada el trazo de esa pantalla?
538  Programación / Programación C/C++ / Re: Problema con pantalla completa en SDL2 en: 26 Marzo 2018, 22:24 pm
No tengo Linux ni SDL.

Se me ocurre que a lo mejor no sale del bucle de eventos.
Cambia el while por un if, a ver que ocurre. Si ya no funciona así entonces es que fondo no se redibuja a windowSurface.
539  Programación / Programación C/C++ / Re: Problema con pantalla completa en SDL2 en: 26 Marzo 2018, 21:17 pm
A ver, qué tal esto...
Código
  1. while(!quit){
  2. SDL_BlitSurface(fondo,NULL,windowSurface,NULL);
  3. SDL_Flip(windowSurface);
  4. while(SDL_PollEvent(&tecla)) {
  5.  if (tecla.type == SDL_QUIT) {
  6.    quit = true;
  7.  }
  8. }

Flip lo que hace es llevar la imagen que hay en el la superficie al hardware. A ver si era eso.
540  Programación / Programación C/C++ / Re: Problema con pantalla completa en SDL2 en: 26 Marzo 2018, 20:07 pm
Has probado de hacer así:
Código
  1. bool quit = false;
  2.  
  3. while(!quit){
  4. SDL_UpdateWindowSurface(window);
  5. SDL_BlitSurface(fondo,NULL,windowSurface,NULL);
  6. while(SDL_PollEvent(&tecla)) {
  7.  if (tecla.type == SDL_QUIT) {
  8.    quit = true;
  9.  }
  10.  if(tecla.type == SDL_WINDOWEVENT_RESTORED) {
  11.    SDL_UpdateWindowSurface(window);
  12. }
  13.  
  14. return 0;
Páginas: 1 ... 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 [54] 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 ... 161
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines