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

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

memcmp(0, 0, 0);

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

13

Решение

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

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

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

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

Различается ли это между C и C ++?

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

31

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]