[Playlisten] [Impressum und Datenschutzerklärung]

09.03.4 dynamischer Speicher für struct


CC-BY-NC-SA 3.0

Tempo:

Anklickbares Transkript:

dieletzte Geschichte zu Cund zu Zeigerndas finde das überhaupt neines wird ziemlich kompliziertaber das glaube ich muss ich ihm noch zeigendass sie typische Programme lesen könnenwenn ich eine Strukturhabeund ich möchte einevorher unbekannteAnzahl an diesen Strukturen speichernwir mal das wieder Messwerte mit TomatenSample Eichen genannteine Struktur in der ??ein die Daten eines Tempels zusammenhaltenkannich möchte mir merken zu welcher Zeit das Sample genommen worden ist ich möchte mir merken das warme Temperatur anscheinenddem Böttcherzu welcherwas den Temperatur Messwert wirklich war und ich möchte mir merkenwas dieMessstationwaran der derdiese Messung vorgenommen worden istdamit das ganze auch noch inC plus plus genauso funktionierthat ZDFähmschreibe ich noch ein Teil der ?? dazudass ich tatsächlich einfach Sample schreiben kann ohne neue Variable einzurichtenvon der Art und nicht Schatzinsel schreiben muss sojetzt möchte ichso solche Datensätzespeichernohne vorher zu wissen wie viel es denn werden sollendie dann analog aus ?? sind eine ganze Zahlhole ich mir die Größe der ganzen Zahl und zum Schluss ich zeige auf eine ganze Zahl anzeigt auf eine ganze Zeitbehandelt denwie den Namen eines ??bei dieser Strukturgenausofür die Nummer vierzehnaberich fang mal von hinten anich braucheSpeicherMemoryerlaubt hältohne möchte ich vielleicht dreizehnvon LesestrukturenSpeicherhat sich irgendwie raus gestellt ist dreißig ?? natürlich dann keine feste Zahl typischerweiseSonne steht im Lauf des Programms herausäh mein Datensatz wird soundso groß und es bricht ein neuer Tag an und ich brauche wieder soviel Datensätzediese dreizehn typischerweise ausgerechnet werden nicht die Konstante seinwie viel Bytes brauche ich dreizehn malso viele Bytes wie meineStruktur groß istin der Formdas sagte ?? Beistrich für so eine eine einzige Kopie von der Struktur brauche dreizehn mal so viele Ritter gieriggespeichert wird das nachherin einerZeigervariablendie auf die erste Struktur dieser Art zeigt und jetzt kommt noch hierwarbisschen Haushaltich muss was aus manueller Geld zurück kommt noch auf das richtige?? auf den richtigen Typ bringen ein Zeiger aufSampleso sieht das aus hier müsste jetzt ein auf ihrer Vergleich kommen ist das nur Wasser zurückkommt wennes nur ist Problem muss etwas tunund jetzt kann ich damit arbeitenkann sagen gibt mirzum Beispiel das Nolte ElementGrundsätzedavonwie was immer Teil der Wirtschaft setzte davon die Zeit nicht der letzte davon die Zeitauf irgendwasmit sechzigdas könnt ich tunsofern noch nicht besonders Susannes auch auswendig ?? Rayshatte mit Strukturenmit den Zeigerkanisternetwas komischer aussehen ich kenne anfangen mit den Zeiger zu rechnenstellt sich vorsie würden jetzt hierwie plusC plus plussagenund sie dasselbe noch mal machendaswürde ja bedeuten diesen Zeiger zu nehmenund in einer Hausnummer weiter zu stellen?? nicht den Inhalt ?? ich nehme den Zeiger und Stelle zeige eine Hausnummer weiterund so funktioniert diese Zeigerarithmetiksie stellten zu meiner Auswahl weiter stellt wirklich um ein Zehntel weiter nicht um ein Byte weiter sonor kompletten Datenblockvon dieser Art stellt das weiter dieses Ding zeigt also auf den nächsten Eintragunterstelle ich jetzt denVerdacht zehn?? die Zeit auf zehnoderich addiere vielleichtzwei drauf noch wissen Zeigerarithmetikich gehen danach noch mal zwei Hausnummern weiterkomplett um die groß von sämtlichen weiteren Quellen die groß von Samples gehe ich weiterund stell danach die Zeit noch mal auf irgendwassoweit ?? sehr langweiligwarenman kann auch direkt mit dem Zeiger zugreifensie könnten ja auch schreibengucke nachwas der Zeiger steht das ?? mit dem Sternchenjemand erinnertwas steht der Zeigerund dann ändere da was das ungeschickte ist um das zu tun müsse das mal wieder klammern dass sie schon vorgeführter diese Sternchen hier?? es müssen sehr empfindlich da müsste man klammern könnte das aufzweien fertigstellendas wäre auch eine Art das zu schreibennehme diese Strukturdie da steht vor der Zeiger hin zeigt und mache etwas damitsowas könnte ich schreibenaber eleganter Seher ausdeshalb der ganze Aufwandnicht dran ich möchte Ihnen noch eine Schreibweise zeigen eleganter ist folgendes W zeigt irgendwohinund das worauf es hin zeigtsetzeauf irgendwasvon mir aus das wäre die elegantere Schreibweisedas Wort deshalb der ganzeAufwand hier mit der Struktur das wollte noch mal gezeigt haben diese Schreibweisedann weiter vierzehnandiese Schreibweise als statt dass sie sagengucke wohin der Zeiger zeigt und dann Punktum auf diese Elemente der Datenstruktur zuzugreifenmüsse Punkt leider können Sie auch direkt schreiben wieunseren Fall das finde ich sehrintuitiv von der Schreibweise NRW zeigtauf die Zeit und die wird irgendwie geändertdas ist die übliche Schreibweise dass sie die einmal gesehen haben wir mit dem Pfeil statt SternchenPunktheißt nehme diesen Zeiger der Zeiger zeigt auf eine Strukturund das ist derEintrag in diese Struktur den ich jetzt ändern will der Member dieser Struktur den ich änderndas zweite Mal in Aktionhierso viel Kramja Punktich geh direktbis dahinsoder erste Schritt ist das er mir jetztdreizehn mal diese Struktur reservieren sollich hoffe es genug Platz im Speichernichtgenug Platzklasseokay sind das in Aktion dreizehn mal Struktur Anschein auch für die anderen Schützen lediglich Nullzeiger zurück ?? armich probier es mal mit bräuchteneinshabe ich einen der Habichtswalddriveich probier mal hier in dem ichdas Reich der ?? Strukturund ich nehme auch mal bisschen wenigerhier der sechzehn Bytes bis ich schreib jemals hier reindas er für die Station nur noch vier Bytesverwendetwird und dass das dann in denArm klein Speicherplatzwoein Ausführenokay das ?? fusioniert sowie passt rein zwei vier acht zwei vier null achtda liegt jetzt unter Speicher über den wir selbstverfügen dürfen zwei vier null acht die Stelle ?? eben schon mal das warnull eins zwei drei vier fünf sechs sieben acht hier ist dirgeht es los mit der Adresse zwei vier null acht?? erzähltdas null acht null null eins zwei drei vier fünf sechs sieben acht daist immerso ?? schreibe ichin den einzelnen äh den Member so schön heißt in den Eintrag Teildes nullten Eintragsin den Speicherbereichdie vier sechzig reindas sollten wir sechzig seinjetzt gehe ich ein Haus weiterdas heißtdieses Ding hier geht's nicht zu vierundzwanzignull neun es gibt nicht ein Byte weiteres geht einmal die komplette Größemeiner Datenstruktur weiter wirklich eine komplette Hausnummer weiter also nicht auf ihr zwanzig null neunwas sich die große Datenstrukturistgerade mal anguckenwie groß sie zumindest sein muss Klammer zu angucken??Time brauchtfür den zu obiger Maschine zwei ByteSlot braucht auf dieser Maschinetypischerweise auch sowieso vier bei der Nummer sechs Beistrich und sie noch vier Bytes für den direkte soll also zehn Bytes weitergehener darf mehr weitergehendeskönnte effizienter sein muss mindestens siebzehn Byte Lastplatzlassenwarenimmer runterKomma gucken also zehn mehrmindestensund nicht die eines davon ja schon mal sechzehn mir sowieso eine davon null auf eins gehtund dann von der Art auf die zwei hundert sechzehn weitergegangenda stell ich jetztzehn Reihen an die Stelleda ist die zehn sind nicht direkt im Anschluss sondern wirklich weitergegangen ist jetzt aber noch ?? null eins zweidreivierfünf sechssieben acht neun wirklich zehn weiter gegangenwaren und jetzt wieder den hier plus zwei nicht zwei Bytes weitergehen sondern zwei komplette Einheiten weitergehen zwanzig weitergehensich entsprechend ändernum zwanzighexadezimalverwirren lassen das es hexadezimalda schreitet sie zwoundvierzig reinBeistrich die zwoundvierzig viel weiter hintenund an dieselbe Stelledas ist dieselbe Stelle schreibe ich jetzt mal die siebzehndass alsodieser Ausruf und diese Ausdrücke machen dasselbe nur ist der untere Ausdruck der die man typischerweise schreiben wird sie einfach eleganter aussieht eine selbst einmal siebzehn einmal sechzehn plus einsunddas war alles was ich ihn zu C zeigen wollte