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


 


Tema destacado: ¿Usas Skype? Protégete de los Skype Resolver


  Mostrar Mensajes
Páginas: 1 2 3 4 [5] 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 112
41  Programación / Programación C/C++ / Re: Corregir este error con Win32 en: 7 Abril 2018, 13:40
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.
42  Programación / Programación C/C++ / Re: Corregir este error con Win32 en: 7 Abril 2018, 12:53
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. }
43  Programación / Programación C/C++ / Re: Corregir este error con Win32 en: 7 Abril 2018, 12:16
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').
44  Programación / Programación C/C++ / Re: Estructura de datos en C en: 4 Abril 2018, 20:04
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?
45  Programación / Programación C/C++ / Re: Matrices en C++ ayuda en: 3 Abril 2018, 15:21
Pon lo que llevas hecho.

Después verás que igual que la formas la escribes.
46  Programación / Programación C/C++ / Re: Violacion segmento en C Linux en: 30 Marzo 2018, 16:16
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]);
47  Programación / Programación C/C++ / Re: Problema con pantalla completa en SDL2 en: 26 Marzo 2018, 23:26
Has cambiado el while por el if?
Ya, y al pasarle con otra ventana por encima se queda dibujada el trazo de esa pantalla?
48  Programación / Programación C/C++ / Re: Problema con pantalla completa en SDL2 en: 26 Marzo 2018, 22:24
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.
49  Programación / Programación C/C++ / Re: Problema con pantalla completa en SDL2 en: 26 Marzo 2018, 21:17
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.
50  Programación / Programación C/C++ / Re: Problema con pantalla completa en SDL2 en: 26 Marzo 2018, 20:07
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 2 3 4 [5] 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 112
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines