ok, my previous was wrong. You can also write: void insert(int function(int) [ char[] ] table, char [] name, int function(int) address) { table[ name ] = address; } funcAddressTable.insert("f1", &f1); funcAddressTable.insert("f2", &f2);