From 0b5761eaf5ce74a9da4006d00578bc38751e561c Mon Sep 17 00:00:00 2001 From: Zero <39959756+Gonglja@users.noreply.github.com> Date: Sat, 21 Jan 2023 01:16:22 +0800 Subject: [PATCH] fix(codes/c): Fix unknown behavior when size is 0 or arr is a null pointer (#288) Co-authored-by: Yudong Jin --- codes/c/include/print_util.h | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/codes/c/include/print_util.h b/codes/c/include/print_util.h index 0328a73d..0d0b03b6 100644 --- a/codes/c/include/print_util.h +++ b/codes/c/include/print_util.h @@ -27,17 +27,21 @@ extern "C" { */ static void printArray(int arr[], int size) { printf("["); - for (int i = 0; i < size - 1; i++) { - if (arr[i] != NIL) { - printf("%d, ", arr[i]); - } else { - printf("NULL, "); - } - } - if (arr[size - 1] != NIL) { - printf("%d]\n", arr[size - 1]); + if (arr != NULL && size != 0) { + for (int i = 0; i < size - 1; i++) { + if (arr[i] != NIL) { + printf("%d, ", arr[i]); + } else { + printf("NULL, "); + } + } + if (arr[size - 1] != NIL) { + printf("%d]\n", arr[size - 1]); + } else { + printf("NULL]\n"); + } } else { - printf("NULL]\n"); + printf("]"); } }