Hi, I am hacking on gnome-terminal to switch from popt to GOption command line option parsing. I have a problem adressing a struct by means of a pointer to that struct. Consider ============================================= typedef struct { gboolean option_fullscreen; /* stuff */ } OptionParsingResults; OptionParsingResults parsing_results; int main (int argc, char **argv) { OptionParsingResults *results = &parsing_results; printf("%o %o\n", *results, parsing_results); } ============================================= In the main function I create a pointer to the struct in the main scope. The printf shows that both dereference the same memory spot (equal numbers). At some point in main() the option parsing takes places. The parser writes its results directly into the 'struct parsing_results' like &parsing_results.option_fullscreen = foo However when trying to access the results via the pointer 'results'I read different values in contrast to reading the outcome using parsing_results,
i.e. parsing_results.option_fullscreen != results->option_fullscreenI have no explanation for this. Can someone shed some light on this, please?
I've attached the current state of my patch for gnome-terminal. You can try this patch and run e.g.
gnome-terminal --zoom=5 I've added some printf to show the difference. Regards -- Christian Kirbach Christian Kirbach googlemail com
Attachment:
gnome-terminal-goption6pre.patch.bz2
Description: application/bzip2