We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Yes, the real problem is, I would like to write an easy to switch, multilingual menu. And I imagine, an array like that should work. But there seems to be some brain blocking in 1. How to define and initialize and 2. How to access finally the wanted string. Ok, ommitting the string definition, the array of pointers to strings is easy. char *lang[] = {string1,string2,...}; lang should be the pointer to this array. If I define an array of such pointers, is it char *langset[] = {lang1,lang2,...}; or void *langset[] = {lang1,lang2,...}; and how to access print(langset[langchoice][stringchoice]);??? Or am I just thinking too much and there is a much easier solution to the prob? Any ideas appreciated
Your variable Menu has a bad declaration. Try:
#include <stdio.h> #include <reg52.h> typedef char code* MenuItem; typedef MenuItem code* Menu; typedef Menu code* Menus; typedef struct MenuCtrl_Tag{ char code* commands; unsigned char count; Menus menus; unsigned char lines; void (code **dest)(void); } MenuCtrl; // german menu code MenuItem menuG[]={ "Punkt eins", "Punkt zwei", "Punkt drei" }; // english menu code MenuItem menuE[]={ "point one", "point two", "point three" }; // independant menu pointer // something like code Menu menusGE[]={ &menuG, &menuE }; code MenuCtrl root={ "123\x1b", // command chars 3, &menusGE, // strings 2, NULL // functions for now }; void main() { TI = 1; //to make printf works in debugger printf( "%s\n", root.menus[1][1] ); //should be "point two" while( 1 ) ; } <\pre>