On 8/3/17 9:12 PM, Andrew Edwards wrote:
Andrew Edwards wrote: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.Just in case... here are the two functions being called in main(): https://github.com/vurtun/nuklear/blob/master/nuklear.h#L5695-L5722
Can you show how you declared these in D? It's important. I think what's happening is that the nk_color_hex_rgb is incorrectly defined. I think you should *always* get segfault, with or without any of those arrays.
-Steve
