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. // サイズの入力
  10. scanf("%d %d", &a, &b);
  11.  
  12. // 行数分のポインタを動的確保
  13. mat = (int **)malloc(sizeof(int *) * a);
  14. if (mat == NULL) {
  15. printf("ERROR\n");
  16. return 0;
  17. }
  18.  
  19. // 各行に列数分のint配列を確保
  20. for (i = 0; i < a; i++) {
  21. mat[i] = (int *)malloc(sizeof(int) * b);
  22. if (mat[i] == NULL) {
  23. printf("ERROR\n");
  24. return 0;
  25. }
  26. }
  27.  
  28. // 値の代入(例として、mat[i][j] = i + j とする)
  29. for (i = 0; i < a; i++) {
  30. for (j = 0; j < b; j++) {
  31. mat[i][j] = i + j;
  32. }
  33. }
  34.  
  35. // 表示(変更不要と指定された部分)
  36. for (i = 0; i < a; i++) {
  37. for (j = 0; j < b; j++) {
  38. printf("%d ", mat[i][j]);
  39. }
  40. printf("\n");
  41. }
  42.  
  43. // 動的確保したメモリを解放
  44. for (i = 0; i < a; i++) {
  45. free(mat[i]);
  46. }
  47. free(mat);
  48.  
  49. return 0;
  50. }
  51.  
Success #stdin #stdout 0.01s 5292KB
stdin
2 3
stdout
0 1 2 
1 2 3