Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Blaster en 8 Junio 2013, 17:34 pm



Título: Problema con estructura y punteros en C
Publicado por: Blaster en 8 Junio 2013, 17:34 pm
Buenas!!

Tengo un pequeño problema con un codigo me compila pero al momento de ejecutarla windows
tira una ventana donde dice que mi programa hace referencia a una zona de memoria a la que
no se puede escribir, les dejo el codigo

Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5.    int i;
  6.    struct COORD { int array[10], y, z; } punto;
  7.  
  8.    struct COORD *ap_punto;
  9.  
  10.    for(i = 0; i < 10; i++)
  11.        ap_punto->array[i] = 2;
  12.  
  13.    punto.y = punto.z = 1;
  14.  
  15.    ap_punto = &punto;
  16.  
  17.    ap_punto->y+=2;
  18.    ap_punto->z=3;
  19.  
  20.    for(i = 0; i < 10; i++)
  21.    printf("%d ", ap_punto->array[i]);
  22.  
  23.    return 0;
  24. }
  25.  

Saludos


Título: Re: Problema con estructura y punteros en C
Publicado por: Puntoinfinito en 8 Junio 2013, 18:58 pm
Probablemente en tu código tengas un problema de declaración de memoria. Lo que se le llama un core dumped, la palabra que más odio xD Eso o tu ordenador lleva más de 2 años (o menos) abierto y tu memoria ha llegado a su máximo jajaj


Título: Re: Problema con estructura y punteros en C
Publicado por: 0xDani en 8 Junio 2013, 21:08 pm
Es simple, cuando haces esto:

Código
  1. for(i = 0; i < 10; i++)
  2.       ap_punto->array[i] = 2;

Acabas de declarar la variable ap_punto, y ni siquiera sabes donde apunta, así que es perfectamente posible que estés tratando de escribir en una zona de memoria protegida.

Me parece que lo querías hacer es llenar el array de la estructura punto, para eso pon esta sentencia antes de llenar el array:

Código
  1. ap_punto = &punto;

Saludos.