Как обрабатывать MAX () пустой таблицы как 0 вместо NULL

sizeof () возвращает размер фактического типа переменной. Таким образом, когда вы определяете свой тип как char *, он возвращает размер указателя.

Но если вы сделали свою переменную массивом, sizeof вернет размер самого массива, который будет делать то, что вы хочу:

char *ptr = "moo to you";
char arr[] = "moo to you";

assert(sizeof(ptr) == 4);   // assuming 32 bit
assert(sizeof(arr) == 11);  // sizeof array includes terminating NUL
assert(strlen(arr) == 10);  // strlen does not include terminating NUL
21
задан Mariusz Jamro 3 May 2018 в 17:25
поделиться