¿Puede un código válido tanto en C como en C++ comportarse de manera diferente?
¡Hola a todos! Soy un desarrollador principiante de C++, pero en la universidad nos obligaban a escribir en C. Ahora he notado algo extraño: a veces el mismo código se compila tanto en C como en C++, pero funciona de manera completamente diferente. Por ejemplo, escribí un pequeño programa que usa sizeof para un string literal y lo compara con un puntero.
Aquí está el código:
```c
#include
int main() {
char arr[] = "Hello";
char *ptr = "Hello";
if (sizeof(arr) == sizeof(ptr)) {
printf("Los tamaños son iguales\n");
} else {
printf("Los tamaños son diferentes\n");
}
return 0;
}
```
En C++ obtuve el mensaje "Los tamaños son diferentes", y en C también "Los tamaños son diferentes", pero he oído que hay ejemplos donde el comportamiento difiere drásticamente. ¿Puede un código que es válido tanto en C como en C++ comportarse de manera diferente? Si es así, proporcione un ejemplo concreto con explicación. ¡Gracias de antemano!
<<>>