fork download
  1. #include <stdio.h>
  2.  
  3. int dodoubleloop(size_t rows, size_t cols, int m[rows][cols],
  4. int target, size_t *row, size_t *col) {
  5. for (size_t i = 0; i < rows; i++) {
  6. for (size_t j = 0; j < cols; j++) {
  7. if (m[i][j] == target) {
  8. *row = i;
  9. *col = j;
  10. return 1;
  11. }
  12. }
  13. }
  14. return 0;
  15. }
  16.  
  17. int main(void) {
  18. size_t n = 12, m = 42;
  19. int matrix[n][m]; // C99 VLA
  20. int value = 2023;
  21.  
  22. matrix[7][39] = 2023; // it's UB accessing other elements!!
  23. size_t row, col;
  24. for (int kk = -1; kk < 2; kk++) {
  25. int status = dodoubleloop(n, m, matrix, value + kk, &row, &col);
  26. if (status) {
  27. printf("value %d found in cell (%zu, %zu)\n", value + kk, row, col);
  28. } else {
  29. printf("value %d not found\n", value + kk);
  30. }
  31. }
  32. return 0;
  33. }
  34.  
Success #stdin #stdout 0.01s 5404KB
stdin
Standard input is empty
stdout
value 2022 not found
value 2023 found in cell (7, 39)
value 2024 not found