fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(){
  5. int i, j;
  6. int a, b;
  7. int **mat;
  8.  
  9. scanf("%d %d", &a, &b);
  10.  
  11. //---- 2次元配列の動的確保 ----
  12. mat = (int**)malloc(sizeof(int*)*a);
  13. if(mat == NULL){
  14. printf("ERROR\n");
  15. return 0;
  16. }
  17.  
  18. for(i = 0; i < a; i++){
  19. mat[i] = (int*)malloc(sizeof(int)*b);
  20. if(mat[i] == NULL){
  21. printf("ERROR\n");
  22. return 0;
  23. }
  24. }
  25.  
  26. //---- [0][0] から順に 1,2,3,... を代入 ----
  27. int val = 1;
  28. for(i = 0; i < a; i++){
  29. for(j = 0; j < b; j++){
  30. mat[i][j] = val++;
  31. }
  32. }
  33.  
  34. //---- 表示 ----
  35. for(i = 0; i < a; i++){
  36. for(j = 0; j < b; j++){
  37. printf("%d ", mat[i][j]);
  38. }
  39. printf("\n");
  40. }
  41.  
  42. //---- メモリ解放 ----
  43. for(i = 0; i < a; i++){
  44. free(mat[i]);
  45. }
  46. free(mat);
  47.  
  48. return 0;
  49. }
  50.  
  51.  
  52.  
Success #stdin #stdout 0.01s 5248KB
stdin
2 3
stdout
1 2 3 
4 5 6