WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

 
 
Themen-Optionen Ansicht
Alt 21.06.2004, 20:50   #11
Biri
Hero
 
Registriert seit: 04.09.2001
Beiträge: 894


Standard

hi !

die von dir erwähnten sachen sind keine eigenarten von C gegenüber C++. Im Gegensatz zu C hat C++ Klassen, die gewisse Funktionalität kapseln - z.B. eine Stringklasse mit überladenem "+" und "=" Operator - deshalb ist da eine einfache Zuweisung von strings möglich. Intern führt die Klasse dann eine Speicheralokierung durch. (beim destruktor der klasse wird der spiecher wieder freigegeben).

die Zuweisung zum char* funktioniert natürlich - du brachst dazu keine "strcpy"-Funktion. Es wird allerdings nicht der string zugewiesen (d.h. kopiert), sondern die Speicheradresse, an der die Zeichenkette gespeichert ist. Dieser Speicher ist in deinem Fall am Stack, da er lokal angelegt wird, da in einer Funktion vereinbart. Nach der verlassen der Funktion wird der Speicher freigegeben, du hast jedoch noch einen Zeiger, der darauf verweist. Beim nächsten Zugriff darauf hättest du unter Windows eine memory-exception.
Was der TI macht, weiß ich nicht - ist aber sicher nicht die feine art.

Zitat:
Wenn ich aber char erg[15]; schreibe, dann gibts keine Probleme.
s.o.

wenn du eine zeichenkette speicher willst, musst du auf jeden fall "char erg[15]" schreiben - wenn die zeichenkette nicht länger als 14 (!) Zeichen ist (+ ASCII Null).
vorteil von maloc ist, dass du dynamisch zur laufzeit die größe des alokierten Speichers bestimmen kannst.

Zitat:
Wenn man static weglässt, so beschwert sich der Compiler auch nicht. Aber ich schätze mal, dass das static schon wichtig ist!?
Bei static wird die variable am heap angelegt, also beim Verlassen der Fu. nicht freigegeben.

Zitat:
Ich meinte damit, dass man in C++ sich das Allokieren von kleinen Daten sparen kann
was meinst du damit ?
was sind "kleine daten" ?

Zitat:
Aber ich bin eh schon froh dass es C fürn TI gibt, früher wurde fürn TI alles mit Assembler geschrieben!!! Da schreibt man mal 1 Seite nur um den String "Hallo Welt" auszugeben!
hab assembler nur am pc programmiert - stimmt, dauert recht lange, da was zu machen.

fg
-hannes
Biri ist offline   Mit Zitat antworten
 


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:37 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag