Причина в том, что не существует неявного преобразования из const char*
в char*
, но есть одно из const char*
в bool
.
Вот пример, когда вызывается bar(const char*)
(примечание добавлено const
):
#include <stdio.h>
void bar(const char* ptr) { printf("bar(const char*) is called\n"); }
void bar(bool ptr) { printf("bar(bool) is called\n"); }
int main()
{
const char* str = "abc";
bar(str);
return 0;
}