Jpab Posted June 12, 2009 at 10:15 PM Report #271800 Posted June 12, 2009 at 10:15 PM segmentation fault board = (char**)malloc(xlent*sizeof(char*)); if (board==NULL) { printf("ERRO:no memory\n"); exit(1); } for(k=0;k<xlent;k++) { board[k] = (char*)malloc(ylent*sizeof(char)); if (board[k]==NULL) { printf("ERRO:no memory\n"); exit(1); } } for(i = 0; i < ylent; i++) { for (j = 0; j <xlent ; j++) { while(isspace(val = fgetc(f))); board[j][i] = val; } } ponho o codigo de preencher a matriz em comentario,e funciona.(mas tem de preencher) com uma matriz sem ser dinamica esse codigo de atribuir funciona :S nao percebo como nao da. 😕😉
nata79 Posted June 12, 2009 at 10:41 PM Report #271808 Posted June 12, 2009 at 10:41 PM assim de repente, parece-me que trocaste as variáveis dos ciclos. devia ser: for(i = 0; i < xlent; i++) {          for(j = 0; j <ylent ; j++) {              while(isspace(val=fgetc(f)));         board[j][i] = val;                            }                 } arithmeticoverflow.wordpress.com
Jpab Posted June 12, 2009 at 11:42 PM Author Report #271825 Posted June 12, 2009 at 11:42 PM nao, a ordem esta certa :/
edsousa Posted June 12, 2009 at 11:54 PM Report #271833 Posted June 12, 2009 at 11:54 PM assim de repente, umas notas soltas em C não é preciso fazer cast do resultado do malloc (C++ já não) matrizes dinâmicas: char **board = malloc(sizeof(char) * xlen * ylen); //aceder board[i*xlen + j] mas não estou a ver qual o prob com o teu código.. Qual o tipo de board e de val? Tharis Fan ClubMay Tharis bless you
TheDark Posted June 13, 2009 at 01:43 AM Report #271849 Posted June 13, 2009 at 01:43 AM Concordo ali com o nata que a ordem dos fors devia ser ao contrário, a menos que queiras efectivamente o efeito intercalado que aquilo provoca. De resto, não vejo razão para acontecer esse erro. Desaparecido.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now