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. int num = 1; // 1から順に代入するための変数
  9.  
  10. scanf("%d %d", &a, &b);
  11.  
  12. // 2次元配列の動的確保
  13. mat = (int **)malloc(sizeof(int *) * a);
  14. if (mat == NULL) {
  15. printf("ERROR\n");
  16. return 0;
  17. }
  18.  
  19. for (i = 0; i < a; i++) {
  20. mat[i] = (int *)malloc(sizeof(int) * b);
  21. if (mat[i] == NULL) {
  22. printf("ERROR\n");
  23. return 0;
  24. }
  25. }
  26.  
  27. // 1から順に代入
  28. for (i = 0; i < a; i++) {
  29. for (j = 0; j < b; j++) {
  30. mat[i][j] = num++;
  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.  
Success #stdin #stdout 0.01s 5288KB
stdin
2 3
stdout
1 2 3 
4 5 6