mogbo
Banned
(kann gerne in Geplauder verschoben werden, war mir nicht ganz sicher wo es besser aufgehoben ist)
Hallo,
habe neulich ein Meme betrachtet mit dem Inhalt
const MY_MIND = true
Darunter mit der Zeile:
Change MY_MIND
Hier ein Link zum Bild
https://img.pr0gramm.com/2018/08/08/5b489a85732c2bc1.jpg
Natürlich musste ich das mal ausprobieren, was in 90 % der Fälle auch super funktioniert hat, jedoch nicht unter OpenBSD:
Ausgabe unter Linux (gcc):
Hier wurde const int MY_MIND wie gewünscht geändert.
Ausgabe OpenBSD (clang):
Wo wird die 1 eingetragen, nach der Ausgabe müsste der gesamte Bereich mit '\0' überschrieben sein? Gibt es eine kurze Möglichkeit wie ichs unter OpenBSD umgehe?
Um die erste Frage gleich zu Umgehen: "Weil ich Lust darauf habe"
Hallo,
habe neulich ein Meme betrachtet mit dem Inhalt
const MY_MIND = true
Darunter mit der Zeile:
Change MY_MIND
Hier ein Link zum Bild
https://img.pr0gramm.com/2018/08/08/5b489a85732c2bc1.jpg
Natürlich musste ich das mal ausprobieren, was in 90 % der Fälle auch super funktioniert hat, jedoch nicht unter OpenBSD:
Code:
#include <stdio.h>
#include <stdlib.h>
int
main()
{
const int MY_MIND = 1;
(void) printf("%p:\t%i\n", &MY_MIND, MY_MIND);
char *ptr;
ptr = (char *) &MY_MIND;
int i;
for (i = 0; i != sizeof(MY_MIND); i++) {
ptr[i] = '\0';
if (ptr[i] == '\0')
(void) printf("%p:\tnull\n", &ptr[i]);
}
(void) printf("%p:\t%i\n", &MY_MIND, MY_MIND);
for (i = 0; i != sizeof(MY_MIND); i++) {
if (ptr[i] == '\0')
(void) printf("%p:\tnull\n", &ptr[i]);
}
return EXIT_SUCCESS;
}
Code:
0xffffcbec: 1
0xffffcbec: null
0xffffcbed: null
0xffffcbee: null
0xffffcbef: null
0xffffcbec: 0
0xffffcbec: null
0xffffcbed: null
0xffffcbee: null
0xffffcbef: null
Ausgabe OpenBSD (clang):
Code:
0x7f7ffffe004c: 1
0x7f7ffffe004c: null
0x7f7ffffe004d: null
0x7f7ffffe004e: null
0x7f7ffffe004f: null
0x7f7ffffe004c: 1
0x7f7ffffe004c: null
0x7f7ffffe004d: null
0x7f7ffffe004e: null
0x7f7ffffe004f: null
Um die erste Frage gleich zu Umgehen: "Weil ich Lust darauf habe"
