Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: h0oke en 23 Mayo 2010, 02:02 am



Título: [C] - Duda punteros
Publicado por: h0oke en 23 Mayo 2010, 02:02 am
Tengo lo siguiente

Código
  1. int *lista;
  2. ...
  3. lista = (int *)(malloc(sizeof(int) * (n + 1)));
  4. ...


Aquí si me paso de n(N), me debería dar un segmentation fault verdad?


Código
  1. void ingreso(int *L, int N){
  2.  int i;
  3.  for(i = 0; i < N; i++){
  4.    puts("Elemento >");
  5.    scanf("%d",L);
  6.    L++;
  7.  }
  8. }

Acaso malloc, no me reservaría n espacios de sizeof(int), y si asigno algo a un n + 1, debería fallar verdad?


Título: Re: [C] - Duda punteros
Publicado por: leogtz en 23 Mayo 2010, 02:08 am
Aquí no es necesario poner el + 1:
Código
  1. lista = (int *)(malloc(sizeof(int) * (n + 1)));


Título: Re: [C] - Duda punteros
Publicado por: h0oke en 23 Mayo 2010, 02:19 am
Bueno, suponiendo que sea tán solo por n, si en la función de ingreso tendría esto:

Código
  1. for(i = 0; i < N + 1; i++)

Debería dar un error de segmentación verdad?