Lo que pasa es que C convierte automáticamente las variables que pasas por parámetros si es una conversión válida. Te dejo las conversiones en C válidas (no necesitan ser convertidas explícitamente):
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú#include <stdio.h>
int main() {
char cadena1[16] = "Hola";
char cadena2[16];
*(char **)cadena2 = *(char **)cadena1;
fprintf(stdout, "%s\n", cadena1);
fprintf(stdout, "%s\n", cadena2);
fputc('\n', stdout);
fprintf(stdout, "%p\n", cadena1);
fprintf(stdout, "%p\n", cadena2);
return 0;
}
Hola
Hola
000000000023FE40
000000000023FE30
main.c: In function 'main':
main.c:2:14: warning: implicit declaration of function 'malloc' [-Wimplicit-func
tion-declaration]
int *algo = malloc(sizeof(int));
^
main.c:2:14: warning: incompatible implicit declaration of built-in function 'ma
lloc'
main.c:2:14: note: include '<stdlib.h>' or provide a declaration of 'malloc'
main.c:2:7: warning: unused variable 'algo' [-Wunused-variable]
int *algo = malloc(sizeof(int));
int main() {
int *algo = malloc(sizeof(int));
return 0;
}