matriz dinamica y violación del segmento

codek0rZ

Buenas, a ver si alguien puede ayudarme porque llevo un rato largo peleándome con un código de mierda en C que no entiendo porque no me funciona. Se que de esto hay mil ejemplos en internet y ya los vi e incluso copie y pegue para probarlos por si fuera mi compilador o problema de la pila pero no... seguro que es algo que no estoy viendo en el código, a ver si alguien lo ve:

#include <stdio.h>
#include <stdlib.h>

int main(){

int** tablero = NULL;	
int tam;
int i;
printf("Size: ");
scanf("%d", tam);

tablero = (int**)malloc(sizeof(int*)*tam);
for(i=0;i<tam;i++){
	tablero[i] = (int*)malloc(sizeof(int)*tam);
}
return 0;
}

Como digo en el titulo me da violación del segmento después de introducir el tamaño, en el primer malloc.

un saludo y gracias.

B

Te falta el &3 en el scanf, tienes que poner como parámetro la dirección de memoria, no la variable en si.

codek0rZ

OMFG! Gracias tio, llevaba tiempo sin tocar C y ahora lo necesitaba para una práctica y estaba rayado.

Usuarios habituales