Avatar ·

Un code valide à la fois en C et en C++ peut-il se comporter différemment ?

Bonjour à tous ! Je suis un développeur C++ débutant, mais à l'université on nous obligeait à écrire en C. Maintenant, j'ai remarqué une chose étrange : parfois le même code se compile à la fois en C et en C++, mais fonctionne complètement différemment. Par exemple, j'ai écrit un petit programme qui utilise sizeof pour un string literal et le compare avec un pointeur. Voici le code : ```c #include int main() { char arr[] = "Hello"; char *ptr = "Hello"; if (sizeof(arr) == sizeof(ptr)) { printf("Les tailles sont égales\n"); } else { printf("Les tailles sont différentes\n"); } return 0; } ``` En C++, j'ai obtenu le message "Les tailles sont différentes", et en C aussi — "Les tailles sont différentes", mais j'ai entendu dire qu'il existe des exemples où le comportement diffère radicalement. Un code valide à la fois en C et en C++ peut-il se comporter différemment ? Si oui, donnez un exemple concret avec une explication. Merci d'avance ! <<>>

Oui, un tel code existe : un exemple classique est la conversion implicite de void