Могу ли я передать пустой указатель на memcmp?

В частности, является ли следующее определение корректным или оно демонстрирует поведение undefined?

memcmp(0, 0, 0);

Различия между C и С++? В идеале просьба указать цитату из стандарта (ов).

Ответ 1

В частности, является ли следующее определение корректным или оно демонстрирует поведение undefined?

Это undefined. C99 7.21.1/2 говорит обо всех строковых функциях:

Если явно не указано в противном случае в описании конкретной функции в этом подпункте аргументы указателя при таком вызове все равно будут иметь действительные значения

и описание memcmp в 7.21.4.1 в явном виде не указано иначе.

Различия между C и С++?

Нет, С++ отказывается от C для определения функций библиотеки C и не имеет ничего особенного в отношении memcmp.