Stap 9: U noemde een 3 dimensionale array?
Inderdaad deed ik. Maar dit ook samenhangt met de inherente beperkingen van multi-dimensionale arrays. Deze beperking komt in de vorm van geheugen. Allermeest naar de tijd wanneer ik het maken van code, plaats ik variabelen op de "stapel" (een geheugen zaak in programmering) vermoeden zij lokale variabelen zijn of ik maak globale variabelen die zijn opgeslagen in een verschillende geheugentype ".data" genoemd.
Ik ga niet proberen uit te leggen de details/mechanica van geheugen in programmeren (meestal omdat ik begrijp het niet goed genoeg, maar u kunt meer hier), maar van wat ik begrijp toen ik probeerde te maken van een reus drie-dimensionale array op de Uno32 als een soort vermenigvuldigingstabel/kubus, ik liep in een stack overflow probleem waardoor ik geprobeerd om meer dingen in het geheugen dan ik had ruimte voor , zodat de compiler de overtollige dingen in andere geheugenlocaties die niet mag worden geknoeid geplaatst, veroorzaakt het programma crasht wanneer ik probeerde om het te draaien. Ik kon niet schijnen om te overtuigen van het programma dat dynamisch toegewezen geheugen wil hebben meer geheugen ruimte niet moet toestaan.
Kortom, ik liep uit geheugen en kon niet bedenken een manier om de 3D matrix werken.
Ik uiteindelijk het maken van een kleine 2D matrix werken (60 door 60), maar we gewoon een voorbeeld op 2D-arrays vallen, en in het einde, je gewoon typt u uw vermenigvuldiging probleem in code en krijg het antwoord zonder eerst een array van antwoorden. Het is de fijne lijn tussen nieuwe dingen leren en pragmatisme.