mogbo
Banned
Hallo,
bin bei C etwas in Richtung Pointerspielereien abgerutscht um mein Verständnis zu verbessern und bin mittlerweile echt fasziniert was der Compiler alles mitmacht
Gibts fuer sowas Anwendungen oder ist das eine Spielerei, die man sich ganz schnell wieder abgewöhnen sollte?
bin bei C etwas in Richtung Pointerspielereien abgerutscht um mein Verständnis zu verbessern und bin mittlerweile echt fasziniert was der Compiler alles mitmacht
Code:
int
main(int argc, char *argv[])
{
if (argc != 2)
err(EXIT_FAILURE, "argc != 2");
void *c_ptr, *s_ptr;
if ((s_ptr = malloc(strlen(argv[1]) + 1)) == NULL)
err(EXIT_FAILURE, "Malloc failure");
if ((c_ptr = malloc(sizeof(unsigned long))) == NULL)
err(EXIT_FAILURE, "Malloc failure");
/* Speicheradresse als unsigned long ablegen */
*((unsigned long *) c_ptr) = s_ptr;
/* Adresse aus Zahl lesen und mit String beschreiben */
snprintf((char *) *((unsigned long *) c_ptr), strlen(argv[1]) + 1, "%s", argv[1]);
/* Zahl als Adresse ausgeben und String lesen der Zielposition */
printf("%s\n", (char *) *((unsigned long *) c_ptr));
/* freezero ueber Adresse, die in einer Zahl beschrieben wird */
freezero(*((unsigned long *) c_ptr), strlen(argv[1]) + 1);
return EXIT_SUCCESS;
}