Hm, ich weis jetzt nicht von welcher Programmiersprache Du schreibst, aber ich bin grade bei ISO IEC 14882.
Weder mein Borland noch Arduino haben damit ein Problem, das ich ein statisches Array genau so definiere und initialisiere.
Wenn Das bei Dir nicht möglich ist, und es für Dich der einzige Weg ist es wie ein dynamisches Array zu definieren, würde ich an deiner Stelle mal Deine Entwicklungsumgebung überprüfen.
Und falls Du kein Buch über C++ hast, es gibt auch Webseiten die das erklären.
http://www.cplusplus.com/doc/tutorial/arrays/
Ich habe mal bei meinem Borland "strict" mal abgestellt. dann wird auch 'int Anzahl[] = {.....}' nicht an gemeckert.
Bei Arduino hatte ich es tatsächlich so noch nicht probiert, da mein erstes C auf µC's das MIT interactive C war und ich seit dem Array so definiere.
Dynamische Array auf einen µC mache ich halt aus 'Tradition' nicht. Liegt vieleicht daran das ich heute noch Speicherplatz als kostbar betrachte.
Bin halt auch noch gewohnt ganze Programme, Stack und Variablen Bereich mit 4K RAM hinzubekommen.
Und bei 'int Anzahl[24]' sehe ich halt direkt 2Byte (für int) mal 24 gleich 48 Byte Speicherbedarf.
Und muß nicht erst zeitraubend die Kommas abzählen und dann plus 1 um die Anzahl der Felder zu erhalten.
Aber wie gesagt ich empfinde es als unschönen Code, funktionieren tut es.
Diese Aussage, ist aber schlichtweg falsch (Zumindest für eine ISO IEC 14882 konforme C++ Implemtierung. Und was anderes ist ja kein C++ sondern eine andere Sprache).
Es ist einer der möglichen Wege.