[Playlisten] [Impressum und Datenschutzerklärung]

12A.2 Datenstruktur Sparse Matrix, dünn besetzte Matrix; Implementierung in C; malloc


CC-BY-NC-SA 3.0

Tempo:

Anklickbares Transkript:

was ich etwa vorführen wollte ist wie man eineandere Datenstrukturbauen kannandie heißt typischerweiseSpaßmatchwächsteine dünn besetzte Matrixspaßfürdünn besetztsetzte Matrixanwarum man sowas brauchen kannKomma schon bei diesem Kästchenrobotergesehen ?? sich vorstellen sie haben dieses Feldauf demObjekte abgelegt sindnoch Kästchen so auf diesem Feld sind irgendwelche Objekte abgelegtsind vier Objekte unter den fünf Objekten da sind acht Objekt unter sind neun Objektewenn dieses Feld ziemlich leer ist zwar alsdünn besetztwenn dieses Feld ziemlich leer ist ist es ziemlich blödsinnigdass ich mir den Inhalt dieses Feldesin denzweidimensionalenRay Merkelwarum wäre das plötzlichgenau das ist der Gedanke ?? angemessener als FA würde ja ein zwei drei vier sieben acht mal acht Speicherplätzebenötigen wir sechzig Speicherplätze fürvier Zahlenist irgendwie nicht supereffizientalso wenn ich eine dünn besetzte Matrix habe das heißt daslauter Nullendamit ein hingeschriebenlauter Nullen und ein paar Stellenstehen Zahlen die nicht null sind Eltern dünn besetzte Matrix habewäre das bisschen blödsinnig das ich das in andere speicherter zwei Personal?? machbar ständig vor dreidimensionalanalso acht mal acht mal acht das geht dann gleich in die vollen vier dimensional noch mehr gehört die Dimension wird umso vorsichtiger wird man seindaneben versuchen solche dünn besetzten Matrizennichtals Rest darzustellensondernelegantereffizienter soll ich sagen effizienter dazu stellen sich nur zu merkenwas an Zahlen drin stehtwie man sowas anfangeneine Datenstrukturin der ich mir nur merkewas an Zahlen in einer Matrix steht die nicht null sinddasschreit nach einer bestimmtenKonstruktionin zehnder Arzt fragtalso das ist womit jetzt etwa Anfang ich baue mir eine Strukturdie es nur dafür da ist mir eine einzige Zahl abzuspeichernähm ??CellzelleModelle männliches Shopelementandas soll jetzt nur eine einzige dieser Zahlen werdenSemikolon IC nicht vergessenich merke mir wo dies jetztmit XYund ich merke mir den Wertfür jede dieser Zahlen alsabstraktund war wenn C sind Familie Sonntag Devabstrakt Elementsollte FestaktElementelementdazusodas also was ich mir pro Eintragmerkewas eine Konstruktionwerde ich jetztfür die gesamte Matrix verwendeneineListe in der Tat eine Novelle Austragich werdeInformationenfür diese Zahlen einfach in eine Liste miteinander hängenmeine Matrix wird also sowas sein wiesie enthältElementeselber mal ähm diese Matrixtasteam?? das zum Beispiel so schreibekönnte ich da jetzt sechzehn Elemente unterbringensechzehn Zahlen die ungleichnull sindund die Größe von dem ganzen könnte monströs seinPunkt damit wird eine Matrix beschreibenmit welchen Abmessungen überhauptals wenn sie negative Zahlen als Koordinaten zulassen das mal sonst in C ja nicht negative Zahl als Koordinaten wenn sie negative Zahlen als Koordinaten zulassen ?? natürlich hier auf dieser Maschinevon minus zwei ?? dreißig tausend bis plus zwei ?? dreißig tausend X und Y werden haben das heißtzum sechzig tausend breit und fünfundsechzig tausend hoch das Essen ziemlicher klopf war allerdings können jetzt nur sechzehn Einträge ungleich null seinein Riesenmatrixaber ich erlaube sechzehn Einträge ungleich null sind und hier würde ich es reinschreibenwelchedas denn sein soll jetzt aber weitermachen zu Initialisierungund sagenokay dannder Eintragmit der X Koordinate dreizehnund der Y Koordinate zweiundvierzigsoll aufachtunddreißigein hundert stehenunter Eintragmit derX Koordinate minus dreizehn und der Y Koordinate siebensoll aufminus dreißig stehennatürlich eine Matrix die theoretischen sechzig tausend offensichtlich tausend großesund an diesen beiden Stellennegative externe Risiko ?? für die Matrix aber sei soan diesem Bein stellten was drinnenX ?? dreizehn soll es wann wird sich das schon die hundertist gleich minus dreizehnY gleich sieben der ständige minus dreißigdrin?? allerdings habe das jetzt aber nicht zum Leben erwecktsich erinnernwassich eben zuder Warteschlangeuns zu dem Stapel gesagt habewas muss ich jetzt ein noch liefern damitdiese Strukturdiese Datenstruktur soll seine mit diese Datenstrukturwirklich zum Leben erweckt wirdhier noch mal zurück zu denWarteschlangenund so weiter wenn sich die Warteschlange angucken wenn sie sich den Stack anguckenwas gibt's da noch an Zugaben zu dem was ich bisher da so hingeschriebenhabe in zehnals in der Zieldatei für den Stack hätten sie ein Reh wahrscheinlich liegen was ähnliches in dem die Daten tatsächlich stehen aber sind noch zwei Funktionenzum Zugriffgenau das würde fehlen jetzt noch eine Funktion mit mindestens einem und somit welche Daten reinschreibenkann und eine Funktion mindestens mit der ich Daten auch wieder raus kriegen kannwenn ich keine Funktion habe und Daten reinzuschreibenwer das bisschen schwachsinnig Daten rauslesen zu wollen und wenn siekeine Funktion haben und Daten herauszulesenwesentlichen schwachsinnig Daten reinzuschreibendann auch mindestens eine Funktion jeweils von dieser Sortesoll jetzt noch ergänzensoll sich jetzt aber noch mal sagenbei den weiß ist das eingebaut diese Funktionen sind versteckt in der Sprache wenn sie das Schreibenin zehnhaben sie diese Funktion zum Schreiben von Daten benutzt im Endeffektdie Suche schön in der Sprache verstecktdass es kein ausländischer Funktionsaufrufnehmezurück zu dem ihr also auch eine Funktion um Datenin diese Matrix zu schreiben und ich brauche eine Funktion und Daten aus dieser Matrix zu lesenKomma einfach sicherer die Funktion zum Lesen wär mir schon ganz recht Daten reingeschriebenab Werkeine Funktion und Daten zu leseninwas schreibe ich ingenaues geht die Position rein und die Zahl dieser steht kommt raus ?? beschreibt spielenddavor denn es soll die Zahl die Installer widersteht rauskommenan der ?? Stiftung zur Firma ganz blöde Gelddannund der gebe ich eine X Koordinate und eine Y Koordinateder Job dieser Funktion soll seinaus der Matrix die Zahl raus zu holen die eine Stelle X Y steht und mir die ?? zurück zu liefern?? Schweifklammersolieber jetzt als am Ende irgend ein Returnvon irgendwaswie kann ich jetzt vorgehen bei dieser FunktionNa Sie gehen dieses Gerät durch und gucken ob X Yso vorkommtwie sie vorgegebenist wenn es vorkommt dann geben Sie den Wert zurück der dazu gehört ?? dreizehn zwei vierzig übergeben wird stellte fest und es ist der erstem geben die hundert zurück in den minus dreizehn sieben übergeben wir stellen fest es ist der zweite Gewinn minus dreißig zurück und es irgendetwasanderes ist heißt das ja es ist nullund dann geben Sie die null zurück alles was hier nicht in der Liste steht soll Null sein das er gerade der Witz bei der Glasmatrixfast leerenMatrixanalso muss ich diese Liste durchgehenund suchenwie mach ich dasdas freut ganz ganz laut nach einer for-Schleifeich gehe meine Liste durchTwittermaximal sechzehn StückC++ich gehe diese Liste durchund gucke ob der an dieser Stelle jetzt der richtige istPunkt was muss ich jetzt möchte ich gucken ob der eine Stelle Ida Eintrag eine Stelle wie der richtige ist?? Kriege mitPosition haben mit ähm in eckigen Klammern I hole ich mir aus dieser Liste den Sohn zu finden Eintragund jetzt will ich die Koordinaten vergleichen ich möchte wissen ob die Koordinaten von diesem Eintrag ?? zum Beispiel dreizehn zwei wird sich bei dem Eintrag Nummer null ob diese Koordinaten gleich X und Y sinddie Kritikergerade aus dem Eintrag rausmuss man sich an die Snacks erinnern die von sie das bei dem Strack damit ?? schreiben sie eckige Klammer zuZugriffund bei dem Strack schreiben siePunktund Name des Elements zum Zugriff das brauche ich an dieser Stellean ihr steht also im Iist ein Struktur vom Typ Elementerzeugt Punkt X Untätigkeit rauszukriegenund zwar wegen dieses X hierder erstedreißigste zwei das Yund der dritte als Value in meiner Struktur namens Elementund Ironie jetzt das X raus dieses X sie hat nichts mit dem X zu tundas sind zweiganz getrennte Sachen dieses hier heißt X weil ich das in meiner Struktur X genannt habe darunter X raus und ich gucke ob das das X ist was hier übergeben worden istund dasselbe mach ichmit dem YJahrund wenn das beides gleich istmöchte ichden Wert der stets zurückgebenwie mach ich dasbeides erfüllt Beistrich sagen wir ein logisches und dazwischenein Hefter vor wenndie X Koordinate von dem Eintrag stimmt und wenn die Y Koordinate von dem Eintrag stimmtwas mach ich dannwenn X und Y stimmen dann geben Sie einfach ausoder zurückzu mir sagen ich gebe zurück was denn dann in diesem Valuefeldstehtund sieht das aus?? ergeht dieserListe durchgucktbisher einen findetbei dem X und Y stimmenmit den Werten wieder übergeben worden sind?? den gefunden hat gibt er dessen Valueden dritten im Bunde hierbitte den Value aussopassierendass er ihn nicht findet und ?? bin ich hier untenmancheunten an Komma kommt in der Tat dann einfach dritter null und schon fertig das Genuss verteilten Aktionen guckenähmwas sie sehen ich spare Speicherplatzextrem vielaberich opfere dafür Rechenzeiternährt sich direkt auf ein Ding in dieser Liste zugreifenreinigte an die Kinder dünn besetzten Matrix zugreifenmuss dass man suchen bis ich wieder finde das wird man auch eleganter machen man könnte die in bestimmter Reihenfolge sortieren spätergewesen bisschen weit für ?? auf jeden Fall wird das auslesenlänger dauern als es bisher gedauert hat Sparspeicherplatzbrauchen mehr Zeit mehr Aufwand zum auslesennicht erstdiese Liste durchgehen muss Punkt es kommen Aktionen wenn ich also hier sageInventar ist gleichjetztüber irgend einendrei vier der müsste ja null ergebenPunkt immer noch einen an dem stehen sollte ??minus dreizehn siebenStreitssiebenglaubt die Optimierung noch nicht auskeine Überraschungen hierBeistrichdass mandasandie erste müsste null ergeben weil an der Stelle drei vierja nichts stehtmöchte seine Stelle traten zwei vierzig Wasser steht an der Stelle minus dreizehn sieben was steht aber nicht Biografie habe ich Nixokaynur zurückgebenoffensichtlich auf diese for-Schleife dann durch und findet nichts und ?? des Rittern am Ende mit null ?? und hier müsste jetzt tatsächlich ein Wert findenminus dreißigstes das gehörtso weit sie zerschmettert plausibel auswas mich jetztetwasstört ist das hier die sechzehn hart codiert istda oben steht die sechzehnda unten steht die sechzehnwenn jetzt jemand hingeht und sagt auch es aber mehr Sport aber zwei dreißigund zwounddreißigund des Audi sechzehn stehen das kein richtig blickende Ideedas dann somüssen Software EngineeringSoftwaretechnikGrundzüge der Softwaretechnikdass man dafür sorgt dass solche Konstantengefälligst dann an einer Stelle gebaut werdenKomma nicht durcheinander kommen jetzt ganz klassisch ziehenwürde man jetzt schreiben die feinamwas habe ich ?? Klammer auf ElementsnumberGroßbuchstabendann auch das ist sie am Morgen auf Elementswar man Großbuchstaben nicht los groß kleinschreiben kanndamitUnterstrich dazwischen Klammer aufsoll sechzehn seinso würde man das typischerweisemachen ?? klassischen sie inC plus plus könnte man hier auch ordentlich kommstinsSchreiben ist mir aus eine Variable wird auch der vom Compiler behandelt und vom Präprozessor das Film Präprozessorder Präprozessor geht diesen Text durchsucht überallnach auf Elements schreibt stattdessen sechzehn einziemlich billige Methodeallerdings etwas fehleranfälligan so sieht das dann außen wenn ich es hier zwei ?? dreißig Schreiberder Präprozessor überallzwounddreißigeintragenund das kann ich mir durcheinander gehenguckenwas er nieBeistrich soweit sieht's ja noch ordentlich aus??so das war dasAuslesenjetzt kommt der spannende Teil das Schreibenwie muss die Funktion zum Schreibenzur Eingabe aussehenmöchte natürlichdass ich dasweitgehendanalog zum normalen RWE verhältdann wenn icheinen neuen Wert angebe für diese Koordinatedreizehn zwoundvierzigdann soll jetzt nichts Schlimmes passieren soll so einfach dieser neue Wertan dieser Koordinate da drin stehen für die hundertan und ähnlichen Wert angeben für eine Koordinate die noch nicht da ist dann muss seine natürlichen weiteren Datensatz anwasdraufeinigen dass diese Funktion erst mal nur ein einziges erwähne mich das ähm hierverarbeiten kanndann würde diese Funktion nurdie Position mitgeben und den Wertmüsse der später mal Gedanken machen wie kriegt man denn jetzt mehrere eiweißverarbeitetesLeistungspaketFunktionnochdes RE mitgeben oder müsste dieser Situation auch noch dieses ?? mitgebenBeistrich aber nun mal mit diesem einen was ich da habe Arbeitenan das sie für das Versagendas liefert nichts zurückes braucht aber die PositionAndreas schreiben sollund es braucht den wertstehendesSchreiben sollalsoweitgucken wie die Zeit hinkommt Komma sollte gleich noch überlegenwie man denn das hinkriegt das man mit mehrerenverschiedenen Matrizen arbeiten kann bis ?? arbeitet die Gerd funktionieren nur mit dieser einzigenMatrix am Jazzfest vertratalles was sie mit Geldmacherlandet in ähmund natürlich auch mal was mit Z gemacht wird mit ähm zu tun hatund nicht mit irgendeinem anderen Ray das müsste dann noch angeben welches ihre aber dem es immer ähmgutden Wert setzenkriege ich voralso der erste Schritt wäregibt's den schonundwenn nichtdannmuss ich ihn anhängenwenn sie schon gibt's dann ?? es einfachshoppendas Gegenteil von mir nicht wenn ja wenn jadannvon sich ?? schreiben neinzu Benzin schon gibt darüber schreibe ich ihndas sollte das einfachste seinwenn sie noch nicht gibt dann sich was anhängendas wäre dieStrategiesie sind ich das gesehen schraube das es auch keine schlechte Art dasserdas zu programmierenwieder so Dropdownschreibe erst vorhin was ich mir denkeund dann formuliere ich das ausschreibe sie sofort irgendwelcheTipps oder Switches oder was auch immer eine schreib erst mal personifizierteDing erst mal hin was ich mir dabei denkeund die Klassiker zu verstehen diese Kommentarefür die Leser nach miroder für mich nächste Woche nicht mehr weiß was ich da getan habeso die erste Frage gibt's den schonwie beantworten wir die Fragegenauden Körper ganzdreistkopieren istnicht ganz aber halbwegs hierdenndiese Frage gibt's den schon der mir vorher schon beantwortetmit dieser for-Schleifeallerdings will ich jetzt nicht den Wert zurückgebender drin stehtdas nicht was ich tun willwas will ich stattdessen tun?? Ecke lustigerweise schon mehr machen hierbei dieses Gift betreten wirdweiß sicher es gibt den WertX originale Stimmtyp samt Koordinate stimmt das heißt ich kann jetzt einfach überschreibenValue soll das seinwas sie als neuer Wert drin steht ich überschreibe den altenmit dem neun?? und dann mach ich einfachReturn denn dann bin ich fertigwenn ich ihn gefunden habe über schreibe ich den alten Wert mit dem neun und mache bitte dieses Rittern mittendrin in einem in einem vor ?? ist keine strukturierte ProgrammierungamArbeits oder kleinen Funktionfür dich einfachverschmerzenkönnte sich jetzt hiernoch Ausflügen machten Breakund merkt sich vor dem Blake noch das man im Wert gefunden hat und so weiterbin ich alles viel aufwendiger als zwischendurch jetzt aber Return zusagt einer offiziellen Funktion würde ich da nicht mittendrin weitermachen das wenn ich sehr gefährlichdefiniert gerade nocherträglichzu dem ?? soll ich noch mal sagenund oft genug sagen dieses Punkt Value bezieht sichaufdiesen Namender dritte Eintragin meinem Datenverbundelementheißt Valuemit Punkt welche Sage ich gibt mir den dritten Eintrag darausdieses welche hierist was anderesdieses Value bezieht sich auf diese Variablesind zwei verschiedene Sachen wenn sie hintenins andere geschrieben hätten wenn sie auch gleich Anton schreiben werden denselben Effektich benenne die jetzt beide Value damit klar ist wozu die da sindmuss natürlichmit technischem Hinterkopf an das diese zwar gleich heißen aber nicht dasselbe sind sei denn ich Magazine Zuweisungso das ist der erste Teil gibt's den schon ?? zu sehen?? den Kommentaren kann ich oben reinwenn ja ?? überschreibendamit hab ich das erklärtes von der eckige Teil wenn nein anhängenwenndiese for-Schleife bis zu Ende durchläuftheißt das ja ich habe nirgendwodas Return zwischendurch gemachtich habe nicht den Wert gefriert diese Gordon hat den Wert und nach die Koordinaten habe ich nicht gefundenKomma dann als ich hier an wenn ichkeinen Eintrag gefunden habe mit den richtigen Koordinatenund dann muss ich da anscheinend in der Listein dieser Liste einen neuen hinten anhängenwie könnte ich das tun einen neuen hinten an der Liste anhängengenau das ist der Trick wenn etwas drinnen stehtist der Wert ungleich nulldiese Initialisierungbei C funktioniert ja so wenn ich nur zwei Angeber das er dann automatischdie restlichenmit Nullen fühlt und so weiter und so fort das heißt die übrigen in der Listedie bringende Liste haben alle als Wert null drinstehenich suche einfach nach dem erstendie als Wert null drin stehen hat und schreibt da was reinandas lustige istwenn jetzt jemandden hier auf null gesetzt hättefür die schon den die hier findenund da was neues reinschreiben und das würde genauso funktionieren wie es funktionieren muss netterweisewird automatischalle recycelndie auf Null gestellt sinddie Fahnder von selbst raus ?? also keine Funktionum Einträge wieder zu entfernen was passiert von selbst das Entfernen von einträglichen Gesetze einfach ein Eintrag auf nullund der steht dann bereitsbeim nächsten Mal um einen anderen Eintrag wieder aufzunehmen ?? ich gucke nach dem ersten Eintragbei dem der Wert null istin dieser Situation ist der erste Eintraghier dir mit der Nummer null eins zwei der nächste ?? ist der erste bei dem als Wert null drin stehtan aber es könnte dann passieren wenn ich ganz viele Werte habe das inzwischen durch eine hier mal zu Fuß auf null gesetzt wird dann würde ich den nehmenden ersten ?? auf null gesetzt wirdalso das ist jeder Tropfen ein anhängen und dannheißt das also finde den erstenderdessen Wert auf null steht dessen Value nach dessen Valuewar aufnull stehtdas ist der Job nunwieder gravierender ist und nicht nach X Y suchensoll nach dem Value suchen also ich gehewiederalle Elemente durchihr Element durch und gucke nicht ob X Y stimmt sondern ich gucke ob der Uppsala Valueob der Value gleich Null istund wenn der Value gleich null istschreibe ich ihntotal lustigaberdass die Rest dass der Rest dann tatsächlich so weitergehtKlammer zu zum rekapitulierennicht kucken die Liste durch ob es X Ygibt's diese Koordinatengibt'swenn ja schreibe ich da den neuen Wert reinund wenn es sie noch nicht gibt guck ich wieder von vorne durchgibt es einen bei dem der Wert null istwenn der Wert null ist schreibe ich da den neuen Wert reinfehlt aber noch wasund natürlich auch X Y an der Stelle denn die stimmen ja im Zweifelsfall nicht ?? muss natürlich ?? stehenXder X wird in der Strukturgleich X der Experte übergeben worden istund dasselbe für Ysoweit so gutes kann noch ein letzter Blödsinn passierenes kann genau sein dass das Gerät zu klein ist was passiert wenn ich jetzt ja wie eben gesagtwarzwei ?? dreißig Einträge was passiert wenn es einer versucht hier hundertmaldiese Funktion Z aufzurufenund dann hundert Sachen dahinter zu schreibenirgendwannwird der Prozessor das Handtuch verlegt was überschrieben worden ist im Speicher wohl nicht überschrieben werden sollte?? ich muss hier nochsicherstellendass ich nicht hinter das recht schreibedas lustige istdas passiert auch gar nicht das es schon eingebaute sind ?? ich gucke nach einemin der Länge des Arraysgibt es in diesem Bereich irgend einen der null ist?? aller ersten schreibe ich meinen neuen Wert reinich gucke niemals hinter das Ende des Gerätswas wird einig passieren wenn jetzt einer hundert mal diese Funktion hier aufruftoder dieser Funktionsaufrufwas passiert ein die was geht eigentlichlausige dann einfach nicht mehr ausgeführtdas FAhat lauterWerte ungleich null drin stehen erfindet hier in der letzten for-Schleife nichts mehr was reinschreibenkanndas heißtnach den zwei dreißigsten Mal ist einfach Feierabend es passiert nichts mehr die Funktion läuft durch aber diese for-Schleife wird nichts mit denanund das heißt er kommt aus dieser for-Schleifehin rausund hat nichts getanwenn er Glück hatfindet wasnull zum reinschreiben der konnte damit dem Wetter draußennichts mehr findetkonnte hier rauswas soll ich sinnvollerweisemachensollte netter zurückgeben dass er keinen Platz mehr hat ?? anders wenn in C etwas eingeschränkt in C plus plus würde man eine Echse werfen und in den neueren Sprachenund Ce man da etwas eingeschränkt?? ich würde folgendes tun ich für diese Funktion doch ein Rückgabewertgeben wohlunser Rückgabewertsagt einfach Hops funktioniert hat wenn ich hier sage Ritterhuhat es funktioniertwenn ich hier sage Ritter Drew hat es funktioniertwenn ich hier sage ReturnVorsatznicht funktioniert das wäre eine ganz billige Art?? Fehlermeldung zurückzugebeneuch natürlich jetzt wieder in CStandardkursogutund die??Haarsollte das funktionieren??bin gespanntKomma etwas kleiner erst mal zwei dreißigste bisschen nervig wenn nur vier Einträge?? Betriebsinhaberdie ersten beiden gesetzt macht das FA aber vier Einträge großnunprobiere ich also mal setze den EintragNummerdreivierauf die Zahlhundert dreiundzwanzigsollte mir dann auch angucken was da zurückkommt wie gleichsetze den Eintragminus dreizehnsieben auf die Nummer hundert dreiundzwanzig?? Komma nachgucken ob dies wirklich angekommenist was allein geschrieben hatder Feuchtigkeit aber soll ich ein paar weitere Setzbefehlegebennämlich so vieldass es nicht verpasst ?? insgesamtauf jeden Fall viel zu viele Fehler zu setzennatürlich andere Zahlen ähm fangen bei den Koordinaten an der Zahl ?? bin ich immer dieselbe Stelle schreibedann passt es jasowasalssodas ich mir schon da steht nichts dringender steht der Wert drin von Initialisierungjetzt setzt sich an der Stelle drei vier X gleich drei vier auf den Wert hundert dreiundzwanzigund gibt mir war zurückes war Platzan der Stelle minus dreizehn siebzehn ?? anno hundert drei zwanzig eingeschriebenund jetzt guck ich nach was an der Stelle minus dreizehnsieben stehtüber ?? hundert drei zwanzig jähriger gerade reingeschriebenich setze noch irgendjemandendas hat auch funktioniert ich setze noch jemanden das hat nicht mehr funktioniertda waren schon vorher mit dem Erregersieht das doch schon mal recht plausibel aus und können sich an nochmalsRädern tatsächlich angucken bei den stet Xstehtdas Standardwerterennendreizehn zwoundvierzighundert ab Werkdieinnerlich überschrieben minus dreizehn sieben tausend hundert drei zwanzig überschriebendannder nächste drei vierist hier gekommen sind drei vier hundert dreiundzwanzigunter dieser hieran der Stelle vierunddreißigdrei hundert zweiundvierzigvier tausend hundert zwoundvierzig die drei hundertvierzig reingeschrieben das hat auch noch gepasst und der hier hatte nämlich mehr funktionell war kein Platz mehr drin warKomma aber doch noch guckendass auch die existentenÜberschreibenkann mit nullund die dann recycelt dreizehn zwoundvierzig nehme ich malwenn ich hier malin dreizehn zweiundvierzignull null ?? einsetzenmüsste jaden Eintragmit der dreizehn zwanzigsojetzt müsste erder erste?? jetzt auf null gesetztzwei drei Ziffer wird sich der steht jetzt null wenn es müsste er diesen ersten Eintrag recycelnwenn ich sage?? X gleich vier dreißig Y hundert zwoundvierzigBert gleich drei hundertfünfundvierzigauf der Suche nach dem ersten wird mit nullmüsste jetzt den ersten hier überschreibenwunderbardas ?? müsste jetzt ein Weiterkommenin rein schreibt großes Bdas aber funktioniert das ?? nämlich funktioniert seit ein mehr Platzder letzte Deckel der funktioniertso sieht das ausfein das wäre jetzt eine billigeArtdünn besetzte Matrizen Zwangsmatchesist zu speichernanauf ein bisschen hübscher machenwir das ??was noch unschön ist ist es jetzt diese Geldfunktionund dass diese set Funktionimmer dieses Gerät ähmbearbeitennichts andereswie könnte ich das schon machendie Funktion müsste wissen mit welcher dieser Matrizen sie arbeiten wollenKommazweitePartie malganz kreativ im einzelnen zweizwei Matrizen von dieser Sorte und vielleicht schreibe ich andere Werte reinzuziehenundsiesei von mir aus sowaszwei Matrizenwird sich der Geldfunktionund der Fettfunktion sagen welche dieser Matrizen denn?? und WC sind es ja keine Matrizen sondern für C sind dasBase vonverbundenvom Typ Element also hier müsste ich noch angeben einRayleighvom Typ Elementsowasdas sehr müßighier machenamPassieren tatsächlich übergibt ist ein Zeiger auf das ersteElement auf der Sach dann wo diese dreizehn im Speicher stehtdas hier sageund im eins eingeben und er sagt ?? zwei gebe wo diese drei im Speicher stehtdabei sind diesind ja Zeigerund die Namen von Weiß weitgehend leicht zu verwenden und lustig ist das was jetzt schon das ist das einzige was ich noch sagen muss sage der Geldfunktiondas ist das LW auf der du auf dem du arbeiten sollstim ersten Argument hier an der Stelle X Ysind ähm das ?? wird so geschickt benannt ähm es automatisch dieses ähm hiereben war ähmer da obenstatische VariableDichte außerhalb hatteer jetzt ist ähmdieser Name hierübergebe dieser Funktion kehrtdieses ähm und das X und das Y in der verwendet dieses ähm hier was auch immer das ähm sein mag und genauso bei dem selbstes müsse Session funktionierenfunktionieren funktionieren wenn ich sageimmer aus dem ersten Raydie drei vierundimmer aus dem erstenerstenund so weiter und so weiter ?? Komma das selber normal machen für daszweite RennenganzenKram noch mal hinfür das zweiteArcenter jetzt schon nicht mehr einführenwegen der auch schon gespannt Komma was fast über den zwei?? könnte das ausSuitejetzt nicht das sieht immer so aus wie die nicht das komplette ?? übergeben in Cerhält einfach ein Zeigermuss dann noch mal im Debugger angucken erhält einfach ein Zeiger auf das erste Element in diesem Ray und der Rest funktionieren dann von selbst wenn ichhierwenn ich von so einem ZeigerFrage was das Ideelementist Punkt Xläuft genauso wie es vorher gelaufen istneunzehnich hoffe es zumindestwirddie erste Matrix verstand ja nichts drinnen und minus dreißig dann da drinnennundie zweite MatrixKomma gucken wieder die zweite Matrix auszweite Matrixdrei vierdrei zweidie zweite Matrix hat auch nichts an minus dreizehn sieben das heißt bei der zweiten Matrix müssen diese beiden ersten Befehlenull ergeben an der Stelle drei vier ist nichts bei der zweiten Matrix an der Stelleminus dreizehn sieben ist nichts bei der zweiten Matrix kommt auch nur ausan aber ich kann jetzt auch wieder rausholenwas sich an die Stelle minus dreizehn Siegen abgespeicherthabein der zweiten Matrix und so weiter so kann das dann aussehenso würde man das dannansatzweiseaufbauen was jetzt noch nicht ganz schicke sich nicht auf die Uhr guckendas sogar nochähmes handelt bisher also wir habendie abstrakte Idee was zu einer dünn besetzte Matrixmacht wir haben Funktionenum auf diese Matrix zuzugreifenschon mal ganz nettund zwar auf beliebige Matrizen zuzugreifen ich kann mehrere solche Matrizen haben im Speichersich nur eine einzige sondern ich kann sagen nehme diese Unternehmen jeneschon nettwas wärenoch hübschwas mich noch stören würde ist das diese Anzahl an Elementen systemweitvorgegebenist?? ich würde lieber haben das jede Matrixso zu viele Elemente haben kanndie eine zehn tausend die andere tausendjede für sich so zu viele Elemente haben kannund dass das auch nicht fest ein programmiertesdie Anzahl der Elemente hier lege ich beim Kompilierenfest wie viele Elemente das sindaber es wäre doch viel lustiger wenn ich mittendrin feststellenkann auch ich brauche jetzt eine Matrix fürzehn tausend Elementeund dann mitten in mein Programm sagen kann jetzt ?? mal eine Matrix für zehn tausend Elemente nicht für vier und nicht für eine Million sondern für zehn tausend mehr oder wenigeran das würde hier nicht funktionierenwenn ich ganz zu Beginn ein für alle Mal definiereich groß diese Matrix istwonach würde das Schreibenschreit nach dieser Speicherverwaltungdas man sich selbst Speicher bestellt von System und ihr Speicher freigibt?? gucken fünf Minutenkönnte man sogar hinkriegenamwas ich gerne hätte wäre wäre wäre eine Funktion folgender Art dass ich sagen kannbau mir eine MatrixBildmit Faxund der sage ich wie viele Elementesie denn vorsehen sollähgibt mir dann irgendwas raffiniertes wieder zwanzig überlegendann??es müssen aber die Funktion die diese Matrix verarbeitenwissenwie viele Elemente drinnen sindBeistrich brauche zwei Informationenfür die Funktion der jetzt danach kommenauch einmal Informationenwas wirklich in der Matrix drin steht diese Liste Handys eindimensionalerwähntich brauch aber auch Information dieser jeweils verschieden wie viele Elemente drinnen sindkann ich das zusammenpackenwürde für mich nach einemnach einer Stadt schreibenstatt in den ich dann sinnvollerweise Spaß mit wächstund die enthälteinmaldie Längeder Flächen an Seins ausmachen??die Länge die Länge sollte nicht negativ sein ganzer ElementeaufElementsMensund dannam Element so einmal die Längeund dann die echteMatrixzusätzlich dem bisschen vorsichtiger seinaberleider kann ich das jetzt nicht so schreibenwas will sie nichtKommahier muss ich mir wirklich sagen ein Zeigeranzeigeauf das erste so sieht das dann ausjetzt habe ich wirklich eine Struktur die das beschreibt was ich haben will euch südlichen Teil der StromrumTeilDev in der FormMatrixspaßmit wächstdanndie Funktion die mir so eine Matrix bautsoll so ein Ding zurückgebenund das baue ich jetzt was mich am Ende das einfach ?? eswas mit Accessund das baue ich jetztder Eintrag mit der Zahl der Elementesolldie Zahl der Elemente seinunddiese Matrix hiermuss jetzt einfrisch gebautesFA seinPunkt dafür gibt's jetzt diese manuelle Locationfunktionreservierenmir im Speicher soundsovielBytesanders ist die Zahl der Elemente mal wie groß dennso ein Element hier ist Sophie Beitz brauche ich Zeitelementemal wie viel Bytesamund da kommt dieses Eis aufdie einzige Stellean der dieses Eis auf sinnvoll ist an die vielenwie viel Bytesmöchte ich reservieren im Speichergezahlte Elemente mal wie viel Bytes pro Elementschaut man so machtund ergibtübrigens vergessen es Punkt Beistrich so das merklich männlicherStruktur und ichgebe das Ding dann zurückzufällig seine Matrix bauenwenn ich das mache baue sinnvollerweisemit Matrixauch wieder eine Funktion dieser an die das wieder aufhebthier den Speicher wieder frei gibt die sollte ich dann wie dies mit Tricks nennendiesmit Tricksder gebe ich diese MatrixtricksähmMatrixund gebe den Speicherplatz wieder frei?? freeund diesen Zeigerwas das System Bus freigeben mussRahmen für die Funktion ihrer Speicher reservierten Speicher freigebenauch ich nochStandardlippPunkt Hso örtliche Boris alle nicht mehrdas hat sich erledigtund nun müsste ich hier untenaber sind das ja ?? Komma ich ?? mich jetzt Pass mit Tricks habenetwas mit Vicks ähmaus meiner Matrixhole ich die Anzahl der Elemente rausMensund hier ist dasdie Matrixaus dem ähmandersrumwurde als jedoch ist doch richtig um aus diesemaus diesem Verbund bin ich hieraus diesem Verbund die Matrixanzeigeund den Zeiger wundert sich wie ein Erreger der Serie hintenNewtondas habenwir ?? denselbenGebrauch ?? für das Paaresmatchwegsähmihr frage ich nach der Länge ähm Punkt ?? warMertensKomma wie manTricks rein ob seiner?? unddie Matrix rein dasselbe in die Matrix rein guckenwie dieBauarbeiten zur WMwarganzMatrixguckenauf sound jetzt Komma den Kram ihr vergessen und stattdessen kann ich folgendes sagen ich kann sagenwasmit Vicksdannes ist gleich baue eine neueist das Bild mit Vicks hoffe ich dochwild mit Tricksnicht sagen wie viel Einträge sie haben sollen von mir aus hundertdas sogenaukann ich was reinschreibenvon wegen setztdie Matrix es soll bitte an der Stelle dreizehn zweiundvierzigden Wert hundert hinhaltenund dann guck ich nach ob das funktioniertin Land A ist gleichCatzwound hoffe das wirklich funktioniert die soll ja noch den Rückgabewert anguckenund wie ist gleichich bin gespanntokay was aber allesPunkt das ist natürlich ein Kastell mit Sternchenanzeigerdir steht ein Zeiger drin kein Elementmit Sternchennunauch diese Matrix heißt nicht est sondern sie als ähmKomma was dann auchnumber Offelements heißt nicht Klammer auf Element sondern number Elementsstets mit demdas nichtso aus dieser Matrixähm gibt mir den Eintrag Matrix und damit nieMilch habeneinenFehler gemacht??gucken hierdiese Matrixsitzungirgendwas reinsetzenscheint funktioniert zu haben jetzt aber bitte die Hunderter wieder rausholenso sehr das dann ausgar nicht geschrieben habe ups das ?? wieso diese Matrix auch wieder freigeben ließMatrixoder ?? Willis geschrieben was ich gar nichtsieist Beistrich wie sie soll sie auf dem Fluss wieder freigeben sieht das aus das schöne ist jetzt das man nicht nur zur Laufzeit angeben kann ich groß ihm artig sein soll Sonne Vorteil ist das man jetzt auch hier zum Beispiel sagen kannmit kein Platz mehr gibt dann reservieren wir mehr Platzdas gibt wird sich mit den Zeigerndafür gezielt schöne Funktion wie Lockheedwie erlagder Finger vorzuführen kann sich noch was ?? selbst angucken ?? den du Thoriumamwieder gehe ich drauf wenn jetzt kein Platz mehr da ist endgültig mit der Funktion wie Erler Kate tatsächlich Platz schaffen was sonst nicht möglich wäre