OT: What causes the Segfault in the following?
Andrew Edwards via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Thu Aug 3 18:02:48 PDT 2017
int main()
{
//int wierd[4];
struct nk_color str = nk_rgba_hex("#deadbeef");
//int wierd[4];
char *s;
//int wierd[4];
nk_color_hex_rgb(s, str);
//int wierd[4];
printf("(%d,%d,%d)\n",str.r, str.g, str.b);
//int wierd[4];
printf("%s\n", s);
//int wierd[4];
return 0;
}
The above produces as its output:
(222,173,190)
DEADBE
but if I introduce an int array on any of the commented lines, it
results in a runtime Segmentation fault: 11. Basically I'm just trying
to port Nuklear[1] to D as a first project after reading Ali and Mike's
awesome books. Moving one function at a time to an independent C file,
compiling it to observe the result and then from the understanding
gained, re-implementing it in D. The int array here is introduced to
prepare for port of the next function and has nothing to do with the
current content of main(), but I'm completely confused because I don't
see anything wrong with the code that is causing the error.
By the way, the program responds differently based on the type of the array:
double => Bus error: 10
char => no error
short => Segmentation fault: 11
long => Bus error: 10
Obviously I'm missing something... please enlighten me.
Thanks,
Andrew
[1] Yes, I know there is already a port and bindings available... this
is purely for learning. My goal is actually to port imgui for a project
I committed myself to at DConf2017 but in the process of doing so, I
realized how woefully inadequate my knowledge of programming is. This is
my attempt at rectifying the situation.
More information about the Digitalmars-d-learn
mailing list