fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(){
  5. int i, j, k;
  6. int a, b;
  7. int **mat;
  8. scanf("%d %d", &a, &b);
  9.  
  10. // ここで2次元配列の動的確保をする
  11. mat = (int **)malloc(a * sizeof(int *)); // 行のポインタ配列を確保
  12. for (i = 0; i < a; i++) {
  13. mat[i] = (int *)malloc(b * sizeof(int)); // 各行の列を確保
  14. }
  15.  
  16. // ここで2次元配列に数値を代入する
  17. k = 1; // 1から始める
  18. for (i = 0; i < a; i++) {
  19. for (j = 0; j < b; j++) {
  20. mat[i][j] = k++;
  21. }
  22. }
  23.  
  24. // 以下の部分は表示の部分です
  25. for (i = 0; i < a; i++) {
  26. for (j = 0; j < b; j++) {
  27. printf("%d ", mat[i][j]);
  28. }
  29. printf("\n");
  30. }
  31.  
  32. // メモリの解放
  33. for (i = 0; i < a; i++) {
  34. free(mat[i]); // 各行のメモリを解放
  35. }
  36. free(mat); // 行のポインタ配列を解放
  37.  
  38. return 0;
  39. }
  40.  
Success #stdin #stdout 0s 5272KB
stdin
2 4
stdout
1 2 3 4 
5 6 7 8