2次元配列を90度左回転する問題で、コンパイルはできたんですが、実行するとsegmentation faultと出ます。原因がわかりません。良ければ教えてください。
#include <stdio.h> #include <stdlib.h> #include <time.h> void rotate(int N, int **m){ int i, j, start, end; int temp; j=0; end=N; for(start=0;start<N/2;start++){ end--; for(i=start;i<end;i++){ temp=m[j][N-1-i]; m[j][N-1-i]=m[N-1-i][N-1-j]; m[N-1-i][N-1-j]=m[N-1-j][i]; m[N-1-j][i]=m[i][j]; m[i][j]=temp; } j++; } return; } int main(void){ int i, j, N; N=64; int **m=(int**)malloc(N*sizeof(int*)); m[0]=(int*)malloc(N*N*sizeof(int)); /* for(i=0;i<N;i++){ for(j=0;j<N;j++){ m[i][j]=i+j; printf("%2d ", m[i][j]); } printf("\n"); }*/ time_t start_time, end_time; start_time=time(NULL); rotate(N, m); end_time=time(NULL); printf("time:%ld\n", end_time-start_time); /*for(i=0;i<N;i++){ for(j=0;j<N;j++){ printf("%2d ", m[i][j]); } printf("\n"); }*/ return 0; }
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。