[C] - Duda punteros

Iniciado por h0oke, 23 Mayo 2010, 02:02 AM

0 Miembros y 1 Visitante están viendo este tema.

h0oke

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?

leogtz

Aquí no es necesario poner el + 1:
lista = (int *)(malloc(sizeof(int) * (n + 1)));
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

h0oke

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?