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.

Reply via email to