Test Foro de elhacker.net SMF 2.1

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

int *lista;
...
lista = (int *)(malloc(sizeof(int) * (n + 1)));
...



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


void ingreso(int *L, int N){
  int i;
  for(i = 0; i < N; i++){
    puts("Elemento >");
    scanf("%d",L);
    L++;
  }
}


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:
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:

for(i = 0; i < N + 1; i++)

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