[Playlisten] [Impressum und Datenschutzerklärung]

10.05 Zeiger, NULL, malloc, free


CC-BY-NC-SA 3.0

Tempo:

Anklickbares Transkript:

ichwar bei der WiederholungvonCjetzt kommen die Zeiger dranfolgen der Gedankeder Speicheristlinear organisiertsoll ich sagen das Rahmen?? andere Sorten an Speicherzusätzlich noch nebenstehendaber das Rahmen der Speicher in dem man arbeitetin dem man schreibt und liestim Programmdes Lean Jahr organisiertder fängt bei Adresse null anund endet dannbei einer Adressewie auch immer vier Milliardenoder aufunsere Lieblingsmaschineja bei der Presse hundert sieben zwanzigim PrinzipSamsung gesehen eigentlich hinderlich bei null anschon bald wird der Zeiger nach ?? mit der Bedeutungmit dem Wert null dieser Zeiger in C eine besondere Bedeutung hat der Speicher fängt eigentlich bei null an beschwingte Fink weiter hinten einer ?? also trotzdem dran stehtals Ideediesen Chip hundert achtundzwanzigBytes habejedes weiter seine Hausnummeroffen großen Rechner danebenvier Milliarden Bytes oder acht Milliarden Bytes oder zwei zur noch mehraber eben nur hundert achtundzwanzig??wasC und C plus plusund viele der Nachfolger nicht alle Nachfolgeraber zumindest viele der Nachfolger erlaubenistfür ein solches Byteszu fragen wo es denn steht was ist die Hausnummergrößere Variablen sind auf dieser Maschinewill ich gleich zwei Bytes dann kriegen Siedie Hausnummerdes unteren Bytes wenn sie fragen was dessen Ausnahme und so weiter auch durch die professionelleBezeichnung die Adresseirgendwo steht eine Variablenach der Adresse einer variablenFragekriege ichdie Nummerdes unteren Byteszurück das ist dann die Adresseund in C und C plus plus gibt besondere Variablen in dem man dann diese Adressen speichernZeigervariablenin der Entwicklungsumgebungeineganz normale Variableund nun kann ich fragen was den und es für den Lückentextsechsundzwanzigeiner Sommervariablenkann ich fragen was denn die Adresse dieser Variable wäreund das in eineranderen Variablen speichern diese Variable ist also sozusagen fürHausnummernvonindischer Variablen zuständigKaufmannsundfragen Sie nach der Adresseunterbrochenetwas in die man die Adresse speichern kanndas etwas in die Mailadresse speichern kann eine Zeiger Variable namens P und der Typ dieser Zeigervariablenist Blindsternchendie Originalvariable?? insganze Zahl ?? mit sechzehn BitVorzeichen??und der Zeiger der drauf hat dann den Typ in Sternchensternchenhier soll sagen ein Zeiger daraufreduzieren C plus plus merken sich nicht nur die Hausnummersondern merken auch von was einer ArtHaus das die Hausnummer war Komma dass der Metzgerladenoder war das die Grundschule was auch immer sozusagen das steht hier indiesem Typ können ein Zeiger auf Intentiondas wir dann spannendwenn man damit anfängterherum zu operieren wenn ich sage ohan diese Stelle schreibe bitte die Zahlsechsundfünfzigmuss der Compiler ja wissenwas einen eigentlich an diese Stelle schreiben soll wirklich eine indischer Zahl keine float-Zahlkeinekeine Zeichenkette was auch immer ist das hierin den Zeiger drin der Zeiger weiß er zeigt auf in den Job und die sowas schreibengeht an den Indexeder an diese Adresse beginntdann heiß in diese zwei Bytes der indische Laser an der diese Adresse beginnt wieder die Zahl sechs fünfzigdass es erst mal die grundsätzliche Idee zu den Zeigerngleichtdas kleine ?? gezeigtdas einmalgezeigt im DebuggerKomma als habesie nicht Komma nicht häufig genug sehenalshier sind unsere hundert achtundzwanzig Bytes Sie fangen auf dieser Maschine eben bei hexadezimalnull zwei null null an Design über null null null an der Sonderrolle der nullachtundzwanzig Bytessound nunguckenzweiundvierzigsteeinschreibtda steht man zweiundvierzigzweimalsechzehn plus zehnzwei Bytes belegtich kann mir die Adresse davon geben lassendas wird also sein ?? null zwei sieben null und jetzige zweite einsnull eins zwei drei vier fünf sechs sieben acht neunA B C muss sein null zwei sieben Cda steht es null zwei sieben C ist die Adresse davonund ich kann dannüber diesen Zeiger zugreifenan dieser Hausnummer bitte schreibt dem jetzigen fünfzig rein muss hier also jetztfünfzigerscheinender dreimal sechzehn plus acht zurück auf welchen Stimmenzur Demonstrationdassdie Maschine sich wirklich gemerkt hatdas dann in der Schülerzahl steht und nicht anders konnte man ?? in sechsundvierzig Komma sieben acht neundouble-Zahlanist eine Unterstellung auf dieser Maschinedas was sonst float-Zahl sind alsovier Bytesdefinitiv mehr als zwei Bytes trotzdem sollte jetzt wissen okay das muss in der ?? Taverne sollte sechs fünfzig schreiben und nicht andersguckensomit neu auf dem erstmals sitzen schon eine Warnung nebenbei in?? Komma die Planunghierein bisschen schnellkompilieren gab's schon eine Warnungim sitcomwöchentlichenThatcher das ?? schon gemerkt muss anscheinend diesechs wird sie Komma sie macht neun von Dublin in den Charts verwandelndas aber schon ?? auf das dann in der Schülerzahl stehen muss und nicht anders gehen darf und welche Sätze weitermache sind ?? hoffentlich dann am Ende auch wiederdas Insektizid reingeschrieben das Modell zweiundvierzigZeiger holten alle schon ist müsste trotzdem mal wieder die sechs fünfzig ??Beistrich den Sie bitte die sechsten fünfzig als die Maschine weiß schonwas sie da reinschreiben darf weil dieser Zeiger ein Typ es ist nicht nur die Hausnummer sondern sagt auch was denn der steht an dieser Hausnummerdiese Warnung hierist hochgradig sinnvolldie hätten jedoch ?? double-Zahl haben können die ist keine Ahnungvon achtzig mal zehn hoch vierunddreißigdas passierte im besten ähnlichen Interesse reinhabenund man würdeund dies am Rande um diese Warnung zu unterdrücken ?? man das wirklich machen will und weiß was man tutund man die Warnung unterdrücken indem mandas vorschreibtinterpretiert das bitte als ganze Zahlentschied es ausdrücklich drinnenundalle sind drüber informiert und sind dann geht's auch durch?? typischerweise würde man versuchenalle Warnungen zu beseitigendass wir einer FirmaanZeiger null hatten Sonderrolle hatte schon erwähntwenn sie den Zeiger null haben wollenbrauchen sie Standard der fahr??unddannist dieStandard Definition soll das natürlich heißenKerzenständerdefinitionenwird nullwenn ich irgendwo ein Zeiger habe der Heiligen selbst wenn ich irgendwo ein Zeiger habees später mit Leben gefüllt werden soll odervon dem ich sagen will du bist ungültig du zeigst nirgendwohinverzichtenauf nullbesondere Variablen in denneueren Sprachen heißt das dann nicht Null sondern nicht nur in Großbuchstaben sondern nur den KleinbuchstabenJava sie scharfan ?? in C und C plus plus ist das wirklich nicht anders als die Zahl nullnoch bisschen verziertdamit das auch tatsächlich immer funktioniert ?? im Endeffekt ist es wirklich einfach die Zahl nullZeiger mitdem Wert null an die Adresse nullkann niemalsauf ein echtes Ding zeigen in C darf niemals auch nicht Ding zeigen zehn C++ aus allen ungültigen Zeigerkann man so markieren die man sich auf die Adresse null sechssoferndie Zeiger ziemlich blödwenn ich einfach nur von einem Ding die Adresse holen kannich auchdas mit der Variablen einschreibenkönnen das macht keinen Sinn spannend wird es Zeigerund Erdreiszu verheiratenwenn ich ein Reh habe?? Text siebenundzwanzigPfennig ein rehaPunkt wieBeistrich dass wirdas ab Werk mit den Werten drei vier fünf gefüllt esgleich auf der schönreichLeertasteab Werk mit den Werten drei vier fünfdann ist der Name des Gerätsgleichzeitigdie Adresse des ersten Dings was drin steht das Essen grundsätzlicher Trickin C und C plus plusA kann jetzt sagen ob ?? noch in Zeiger picoer von mir aus Anzeiger Namens erdieses wie der Name des RS verhält sich wie ein Zeiger auf das erste Dingwas drinstehtwenn es hier keine ?? von ihnen schwere sondern eine Reihe vonwas hatten wir zwischendurcheine verbessern?? was im Praktikum mit Tönen eine Reihe von Tönen wäre wäre das natürlich Anzeige aufTon oder Note wir Komma dass gerade waroder wenn das hier ein Rave vonMesswerten wäre MesswertB ?? und so weiter wäre das hier ein Messwertsternchenanzeigeauf ein Messwert Punktdas ist ein Zeigeraufdas null ?? Elements dass dasallererste Element was da in den ?? vorkommtund ich kann mit diesem Zeigergenauso zugreifenwie mit dem Namen des rechtlich kann zum Beispiel schreibenerund dann eckige Klammervon irgendwasdavon einsist gleichdreizehnmit dem Namen des Geräts kann ich dasselbe schreiben mit dem Gerät können Sie schreiben B von EinzelsubstanzB von eins ist gleich dreizehn und der Stadt F vierdreizehntesder Index nullsechs null die viertens ein und hatte vier dreizehn anzuschreibenwürden könnte schreiben wie von ein bis dreizehn aber wenn ich das gemacht habe kann ich netterweise auch mit diesem Zeiger schreibter von ist gleich dreizehnderTrick kommt dann häufiger vorund das ist eigentlich der Grund mit dem Zeiger zu arbeiten dass ich auf diese WeiseeineRays geschickter verarbeiten kann ?? sich vor irgendwo anders im Programm sagen Sie unser Zeiger soll aber auf ein anderes Gerät zeigenund mit der selben Zeiledes André Fachärztenverschiedene Rays mit dem selben Programmcode verratendafür ist es nachher wichtigso allgemein Programmcode haben will ich das Aufrufen des für fuhraber vorzeigen Komma dass dasauch noch weiterunberechenbarist ZeigerarithmetikderEintrag mit dem Index einserscheint der zweite Eintrag in diesem Geräteeintragmit der in der mit dem Index eins hätte ich alles kriegen können mit Sternchenund jetzthole ich mir die Adressepluseinsdamit ?? nicht denselben Eintrag kriegen können?? das nennt sich Zeigerarithmetikich rechne mit Zeigernzu diesem Zeigeraddiere ich einst dazu das heißteinen Schritt in der richtigen Größe weitergehen also nicht ein weit weitergehen sondern dass ein Zeiger Windauf dieser Maschine zwei Bytes langzwei Bytes weitergehen geht zu dem nächsten Ding was dazugehörtob sie eher von eins Schreiben in den eckigen Klammern oder Sternchenerbesein Schreiben ?? dasselbedass es noch ein viel verwendeter Trick dann später in C und C plus plusich kann die Zeiger verbiegennicht die eine Ausnahme habe kann ich sagen geht zum nächsten Haus in dem ich einfach den Zeitraum einzeln oder gehen zehn Häuser weiter bei der nicht ziemlich wenig Sinn dazu zählendas GratulationeineWarnung die solltdas ich was ich verwendet habeokay was ich verwendet das es keine dramatische Warnung bei diesem Programmnunich gehe maldiebis hierhinso das sollte jetzt drei für fünf gleich in fünf Speicher erscheinenversteht drei vier fünf im Speicherimmer schön zwei Bytesbei den ?? hier zwei Bytes lang ist allseitig müssen lesen null null null dreiist da die drei null null null vier ist diese vier null null null fünf ist eine fünfich hole mirdie Zeigeraufdas?? Beistrich null erstem in seinen Zeiger auf die drei hierdie Zeit ?? hole ich mir null null zwei sieben acht null null null zwei sieben acht zwei sieben plus null eins zwei drei vier fünf sechs sieben achtdas ist wirklich ein Zeiger auf die dreiden ich kriege dieses erist der Zeiger auf das erste Element hier die drei ist kann ich sagen er von drei so tun als ob dieser Zeiger André istan der Stelle kann ich den Zeiger wie andere benutzeneher von eins wird also hierzum nächsten hin zu den gerade die vier drin steht und die auf dreizehn Sätzenersehnte die dreizehn Dienste dreizehnaber stattdessen hätte ich auch schreiben könnennehme den Zeiger agiere einst dazubitte an die zur nächsten Speicherstelle für ein ähm tausend ein Byte weiter somit die nächste Speicherstelle für ihnein und schreibe deine zwanzig Wein muss an derselben Stelle Landes muss jederdas in die die zweiundvierzigdas ist Zeigerarithmetikdas ich und zeigen was addieren kann oder Zeiger von seiner was zu bringenwas nicht ungefährlich ist ?? wieder drei tausend zu addierenund schreiben irgendwas reinist das Speicher gute Maschine nicht genug Speicher auf einer Maschine wird es irgendwann speichern sie was kaputtmachenwarendas noch maletwas anders vorgeführt mit der Zeigerarithmetikhier ich zwischendrineinfach den Zeiger erhöhternst weißbevor ich ihn verwendet habeman kann aber auch tatsächlichmit diesen Zeigervariableneinfach rechnenkönnenjetzt einfachhier im Anschluss darandas alles notiert Beistrich im Anschluss daran?? ich bau mal neue Zeigervariablennoch ein bisschen mehr Zeigerarithmetikzu machenwenn ich mal esist kein zum Beispiel sagen es ist gleich dieses Gärtner plus einser war ein Zeiger auf einen IntentionR plus eins ist auch ein Zeiger auf ein Interview nämlich den der dahinter Party speichernund sagen geht das Beistrich an einer neuen Zeigervariableals es die Zeichen als auf den ?? dahinter stehtich genug ich kann sogar sowas machen es plus plusman sich erinnern es Postbus heißt ja in Langschriftin Langschrift heißt das S ist gleich S plus einsgucke dir an wo dieser Zeiger hin zeigt geheeinindischer weiterwo sie zunächst in den Scheinspeicherund Speicher das wieder in diese Zeigervariabledas heißt es plus plus wirdum zwei erhöht werden wenn sie sich den Wert angucken?? auf dieser Maschine beendete zwei lang ist es Postbus also zwei weitere stellt ein zwei Bytes weiter gestellt seinAmt wenn es nicht auf ein Interview zeigen würde sondernhatten auf einen Messwert oder einen Katalogeintragzeigen würde dann würde es Postbus das nicht um zwei Bytes weitergehen sondern vom ersten zwanzig Bytes oder dreißig Bytes oder hundert Bytes weitergehen eine Größeeine Einheitvondieser GrößeinsMesswertKommaam?? aufzugreifen das was auf deine Aktion siehteine Art nicht aufzugreifen kann herrliche vorne schon gezeigt?? schreiben es von eckige Klammerzahltoder ich könnte schreiben SternchenvonSternchen Klammer aufes irgendwasich könnte aber auch genauso lesend zugreifenins aber noch nicht PCnicht ?? könnte lesend zugreifen sagenwir mal das Wasser stehtan der Stelle auf die es zeigt das wäre eine Art Lesen zu zugreifendas wäre anderer das zu kriegen was an dieser Stelle stehtauf die es zeigtderselbeEffektderselbe Effektlässt sich erreichen wenn sieindieselben Effekte sich erreichen wenn sie es von null Schreibender Zeiger es Zeichen irgendwohin in den Speicherund ich hier sage ich wohl immer raus was an dieser Stelle steht Ständchen ist auslösende Stelle steht Speicher das NChier verwende ich den Zeiger als den Zeiger aufden Noteneintragin ein Array und holte dann den Noteneintragdes Geräts rausdas ist derselbe Effektder nur der Eintrag des eines RS ist genau das was vorne steht in dem ähich tue so als ob es auf den seichten Ton heraus was an der Stelle stehtdas macht denselben Effekt von nullan es gibt noch diverse andere Arten aber ich würde nicht völlig verwirrenddas es lieber dabei sind noch diverse andere Arten denselbenEffekt zu erreichensichert ?? einmal gezeigt?? Warnung weil ganz viele neue ?? nicht verwendet werden?? dahinsowirdmich orientieren hierS ist gleich R plus eins groß R er zeigt auf null zwei sieben zwei null zwei sieben zwei er zeigt auf den hiernull drei null nullist nämlich R plus einsSpeicher das InesR plus eins er zeigt auf ein InterviewAirbus eins zeigt also auf die nächsten in welcher das wäre der hier ?? null null zwei A plus eins zeigt auf diedessen Adresse lege ich in es aufSinnlichadressedas sein muss null zwei null sieben nulleins zwei dreivier der muss es werden null zwei sieben vier muss die Adresse werdenes muss nicht gleich null zwei sieben vier seinbesser null zwei sieben vierund jetzt gehe ich mit es um einen in der je weiter es ist ein Zeiger auf ein Interview wenn ich sage es bloß groß heißt das hier einen indische Reiterdas heißtjetzt ist also zwei siebenvier das ist der indische auf den er zeigtgeht ein hundert weitergeht als auf den Zeiten null null null fünfder Zeiger selbst wird also sein null zwei siebennull eins zwei drei vier fünfsechs muss es werden null zwei sieben sechsnach dieser Operationsind vier null zwei sieben sechs tatsächlich nicht um eins ein weit weites und zwei Byte weiter bei der Typ auf den Leerzeichenzwei Bytes größerjetzt ruhig raus was an dieser Stelle steht sternchenestwas steht an dieser Stelle worauf zeigt esdie Zahl fünf steht da null null null fünf weiteren Wesen auf dieser Maschinewie gesagt je nach Maschinesteht dann null fünf null null oder null null null fünf Big Endianoder Little EndianHerrn nicht irritieren lassen auf diese Maschine steht in dieser Reihenfolgeauf ein Tier lassenan ??als an der Stelle steht die Zahl fünfter einen C sollte jetzt die Zahl fünf seinwar die Zahl fünfund alternativkann ich sagengucke dir das Interesse an auf das auf dessen erstes Element es zeigtiso eins angelegtKomma so behandelt der Compiler das dann gucken wir das Ryan ausauf das es auf dessen erstes Element es zeigt und nehme dann dieses erste Element übersandt das Nullelement und dass es Zeichen dieses Nolte Element immerdas ist natürlich wieder diefünf stehtauch die ist gleichHand ist gleich fünfda muss man sich dran gewöhnen an die Geschichte mit den Zeiger das ist nicht ganz einfachBeistrichdiewesentlicheAnwendungvon den Zeigernall das ist schon ganz hilfreichaber die wesentliche Anwendung von den Zeigernist der dynamische Speicherwenn ich nicht hart codieren will wie viel Speicherplatzich brauchenicht in das Programm beim Kompilieren schon einbauen will wie viel Speicherplatz ich brauche?? komme ich bei klassischem Cnicht sie neu neunzig ?? klassischen Cund bei C plus pluskomme ich nicht drum herum dass ich selbst mit dem Speicher jonglierensich die Größen einbaue sondernvomSystemdem System sage gib mir mal soundsovielByteSpeicherdas steht auch wieder inStandardkönnen nicht gesondertsondern mal wieder ?? Standard wirdalles etwas verstreutanseiner Lips Standard Library hat ein paar Definitionenfür Funktionen mit den ich den Speicher selbst verwalten kanndas ist etwas zu Fußandie könntenirgendwo ausgerechnethabenwie viel Speicher denn gerade nötig istund eine monströse Form entgegenstehenoder der Benutzer etwas eingegebenoderwerdenbestellen fest heute ist der soundsoviel derTagwar besonders geil ich muss ganz viele Messwerte aufnehmen Kommadiese Zahl ich jetzt rein schreibekönnte ausgerechnet sein keine KonstanteausGelrechnet sein sodass sie keine Konstante ist wenn ?? Konstante sei dieser anders machen können aber ich möchte jetzt hier keine große Formen hinschreibenständig vor sie haben eine Zahl irgendwie ausgerechneteine Datei geladen werden sie sehen diese Datei isteine drei Megabyte großund wir wussten vorher nicht das sie drei Megabyte groß istKommadann wäre hier dann die drei Megabyte und ich mich jetzt irgendwie versuchen sowie Platz zu reserviereneineeine Größean eine Menge an Speicher zu reservieren von der ich vorher nicht genau wüsste wie vieles istbeim Kompilieren insbesondere nicht genau wissen wie viel Speicherdafür brauche ich den dynamischen Speicher C und C plus plusanich frage das Systemnach einem Zeigeraufso viel freien Platzein Zeigerin Sternchendes natürlichen in einer Variablen an ?? gerade gucken ?? wenn ich jetzt angekommen er ist die hoffentlich habe ich noch freiin dieser variablen Tiefe solle das System speichernwo denn jetzt mein freier Speicher steht den ich mit MemorypaketPlatz den ich mit Memorypaketanfordereim Blogreduziere Speicherimmer wieder mitdieser Funktion manuell und hält die in seiner Schiffhaardeklariertesdieser Funktiongeben Sie wie viel Speicher sie den haben wollenwenn ich sage ich möchtedreizehnin Thatcher Speichern dreizehn Beistrich drei dramatischenvon rund dreizehn Millionen ?? speichernich gerade dieser Maschineich möchte dreizehn speicherndiese Bytes brauche ichdiese dreizehn mal wie großein interchildals dieser manueller Geldfunktion sagen Hilfe bei Zielen bräuchtenZeiss aufund dann in Klammern der Typ Namesagt Ihnenwie viel Bytes den ein einzelnesExemplareiner Einzelinstanzvon diesem Typ brauchtein einzelner Ent braucht so viel weiß also dieser Maschine kämen zwei raus aus was ist geschickter hin ich die zweirein zu schreibensondern sei es oft zu benutzen aus ganz vielen Gründen erstensweiß man wenn man das liest was gemeint ist wieder die Zahl zwei reinschreiben was man ?? und zwei hergekommen istdannzwei weil keine Ahnung weil bald meine Münze zwei Seiten hat oder wie auch immerhier weiß ich wohl zwei herbekomme sein Interesse hat zwei Bytesalso ein Vorteil ich weiß groß hergekommen ist leichter lesbar zweite Vorteil ist es portabler?? einer Maschine Markte in der je vier Bytes habenwenn sie dann zwei reingeschrieben hätten fest drei codiert werden hätte kleines Problem mit ihrem Programmdies so schreibenist das sicherer portabler?? steht die Zahl der Weizen möchteähm in Thatchers haben das es Wifi Beistrich dafür brauchenl okay wirddann so viel Bytes reservieren wenn Sie Welle von Sohnes schafftwenn der Speicher schon zu voll ist wird es nicht schaffenKommaallerdings geht ML und hält keinenGesang ein und ist ein untypisierten Zeiger zurück sie müssen dann was da rauskommt nochin die richtige Art Anzeiger Gießenhat mir eben schon malganz nebenbei hier an dieser Stelledas ich diese double-Zahlverwandt ausdrücklich Verwandte in eine Ganzzahlin dem ich den Typ namens Amanda Vorsätzedesselben hier?? Lockheed liefert einund typisierten Zeiger zu Wassers jedoch sozusagen ein und typisierten Zeiger zurückstehen muss ich noch einen richtigen Zeigertyp verwandeln soll werden Anzeigesowie das auswenn diese FunktionErfolg gehabt hat wird in diesem Ziel tatsächlich dannein brauchbarer Zeiger stehen wenn diese Funktion keinen Erfolg gehabt hatdie für sie null zurückdenndas kann manan der Stelle Land verwendennull ist ja kein Zeigerauf irgendwas brauchbares zeigtin C und C plus plushatte die nächste Zeile nachdem sie das gemacht hatten zu machen sollte das seinwenn dann null zurückgekommenistmüssen wirirgendwie diesen Fehler behandelnund das hängt natürlich vom jeweiligenProgramm abwas sie datun wir das Textbearbeitungsprogrammist und das Textbearbeitungsprogrammsolldrei Megabyte Textladensind aber keine drei Megabyte freien Speicherlandeswohl die einzige Chance zu sagen zurück konnte diesen Text nicht laden Pech gehabtdannwenn das irgend eineAnlagensteuerungist so wahrscheinlich schlechte Idee wenn sie um drei zwanzig Uhr nachts sagen hat jetzt leider nicht funktioniert ichgerade abwenn ich den was überlegen müssen was das Programm sinnvollerweise tun kann das hängt also von der jeweiligen Anwendungmüssen auf den Fehler behandeln mehr oder minder sinnvoll verhandelnauf mich sinnvoll behandeltmehr oder minder Berichte sagen welches habenkein deutsches Wort dafür ein mehr oder minder nett behandelnokay also dasgehört strenghinter jedes Memorypaketsie müssen gucken ob der Zeiger der das ?? gekommen ist null istin C plus plus kann man zwar auch anders behandeln ?? modern sind und wo sieht es etwas anders aus?? und es kommt kein Nullzeiger zurücksondern es wird eine Käppchenoffensivespäteraber in C gibt es so auch in ganz alten C plus plus ist es auch so ausKomma da Nullzeiger Punkt so wenn das nicht der Fall ist Komma weitermachenKomma damitganz üblich hantieren danachist dieses Teeverwendbar als obder Name eines Kreises können dann darauf zugreifen den Benutzerdie vonirgendwas wahrscheinlich ?? Beispiel for-Schleife bauen vor in die gleichniekleinerinC plus plusdiese ähm Sachen wieder drin stehen könnten sie einer for-Schleife durch Nudelnwahrscheinlich ist ?? hinoder minder intelligentesich mal die richtige Taste erwische soandie was haben die von ihnenist gleich von mirmal die?? sehr intelligentesund würde damitdiese dreizehn Interviews die dahinter stehenmit den Quadraten der Zahlen von null bis zwölfoderErwartungen einlesenoder die Zustände von irgendwelchen Ventilen meine Anlagewas auch immer sie würden damit den Speicher ganz normal arbeiten können und er verhält sich wie anderewenn wir dann fertig sindmit der Arbeit sollten wir zum Schluss die Speicher auch wieder zurückgebenamwenn ihr Programmdie ganze Zeit mit diesem Speicher arbeitetund sonstkeine anderen Speicher benötigt ?? das aber so stehen lassendas es gut an wenn ihr Programm zwischen durchaus anders tun solloder der uns besonders anders tun soll und diese Speicher auch nicht mehr benötigtdann sagen sie dass sie den Speicher nicht mehr benötigen dafür gibt's die Funktion wieWiesen freeund den Kindern einfach den Zeigerdas sagt dem Systemich benötige diese jetztdreizehn mal zwei Bytesdichtehatte die Seite mal zwei Bytes benötigt nicht mehr die kann jemand anders ?? das heißt wenn sie nach dieser Zeilenoch auf dasauf die irgendwas zugreifenwissen sie nicht was da drin steht das kann schon jemandem anderen Anführungszeichen gehörende Speicher könnte schon für Nanofunktionreserviert sein der Selbstsachen reingeschrieben hat er Vorsicht Vorsichtnach diesem Zeitpunktnach diesem Fried T dürfen sie nicht mehr selbst was in C veranstaltensie laufen Gefahrwas kaputt zu machenähmsicherheitshalbersollte man deshalb danach dann dieses T auf null setzennoch keine hundert prozentige Garantiedass das funktionelles könnte jemand danach auch nochdie von eins aufrufendas wäre ungeschicktwas ich schon MaleNummer sicherer als wenn sie das nicht tun sicherheitshalberfür dich nach dem Krieg immer sowas schreibendass der Zeiger dann auf null gesetzt wird und klarzumachen der ist ungültigund das normal in Aktion sehen damit ich das in Aktion zeigen kann muss ich allerdings auf dickeren Chip umschaltenschon gezeigt jeder zwei zwanzig einunddreißigmit seinen hundert achtundzwanzig Byte hat keine Chance dynamische Speicherverwaltungzu machen?? Chip muss ich anmerkenKomma an welche Adresse wie viel Bytes er reserviert hatzusätzlich zu den nackten Bytes die reserviertmuss ??werdenbitte sagen damuss er quasi ?? kleine Datenbank anlegenwo er denn jetzt wie viel Bytes reserviert hatund das alles in hundert zwanzig Bytes aussichtslosdas Ding gar nicht an egal was man anfängt da an einem Realität zu machen ?? sofort null zurückim größeren Ticket eingestelltund hoffe das dir auch was tutmanein Ziel und unbenutzte Variablen zu sei esSinnder Osram ist hier etwas größer gewordengeht jetzt bis sechs Drive nullnichtimmer sofort zu der Zeilesojetzt sage ich der Maschine gibt mir mal Platz für dreizehnin Thatcherundder Speicher mirdie Adresse des erstenin dieser Varianteder Zeigervariantemalsehenmal sehen Tnull zweizwei vier null acht zwei vier null achtdas sich hier was geändert hatkönnte mit lokalen Variablen zusammenhängendie gerade zwischendurch eingerichtet worden sind aber sicherlich nicht mit dem was da passiert ist nullzwei vier null achtzwei vier null acht dass das ganz am Anfang vom Raum passiert es auch üblichder Anfang vom Rahmen alswir den Medizin C plus plus als Hiebverwendetals Haufentypischerweise wenn sie das sie am Anfang vom Rahmen die lokalen Variablen finden sie am Ende vom Rahmen des ?? Komma was dazu entdeckteam Anfang steht der Hiebdiese hier stehenauf dem hieram Anfang vom Rangzwei vier null acht zwei vier null acht was wäre das null eins zwei drei vier fünf sechs sieben achtverzählt ?? wäre dasder Anfang vom ein Speicherbereichsokein Fehler gehabt diese Adresse die zu bekommen zwar nicht nur das war eine brauchbare Adresse im Realität hat also funktioniertkein Ärger mit dem Begriff unbefristetübersprungen sehr nettes Respekt übersprungenletztlich in die for-Schleifereinund schreibe einfach Quadratszahlenin diesesin diese Sammlung an Beistrich bekommen habe am Anfang steht null drinnen steht einmal eins eins Sommer zwei macht vier das passiertdass sich die als siedie null ist auf Null geblieben dass wir nicht Ruck rot markiert weil es ja Samwer ist der vordere Bestand hier sind die einsda steht die zwei Quartier da steht die drei verliert und so weiter und sofortihre Frau bis zu dem hierstehende QuadratszahlenNamenneun null ist natürlich neunmal sechzehnPlusnullich hab meinmein Speicherbereichverwendetzwischendurch ?? drei Tage damit arbeiten können und wenn ich damit fertig bin sage ich okay jetzt ?? den Speicherbereich wieder freigeben Fried Edas hier scheint was mit der Speicherverwaltungzu tun zu haben nebenbei lernt man sich keine Gedanken zu machen ?? wundern sich nur nicht Wind nebenbei was passiertirgendwo muss die Maschine sicher gemerkt haben dass dieser Speicher reserviert war und jetzt muss ich gemerkt haben ist der Speicher nicht reserviert ist das könnte hier passiert seindavon sehen sie dann nichts mit IC programmieren das passiert in den Kulissenwenn sie ?? Realität und die aufrufende Verwaltunghätte sich noch mein Zeiger auf null sicherheitshalberlinks wie Digital nulldanndamit da keine ??stellen kann ?? das ist dynamischeSpeicherverwaltunginsehr groben Zügenes gibt noch weitere Funktionenneben manueller Täter manuelle Geld ist die übliche Funktion mit der man den Speichermit dem Speicher reserviert