В частности, является ли следующее четко определенным или оно демонстрирует неопределенное поведение?
memcmp(0, 0, 0);
Различается ли это между C и C ++? В идеале, пожалуйста, предоставьте цитату из стандарта (ов).
В частности, является ли следующее четко определенным или оно демонстрирует неопределенное поведение?
Это не определено. C99 7.21.1 / 2 говорит обо всех строковых функциях:
Если явно не указано
в противном случае в описании конкретной функции в этом подпункте указатели аргументов
на такой вызов все равно должны быть действительные значения
и описание memcmp
в 7.21.4.1 прямо не указано иное.
Различается ли это между C и C ++?
Нет, C ++ использует C для определения функций библиотеки C и не имеет ничего особенного сказать о memcmp
,
Других решений пока нет …