Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
025
14.11.2002, 22:45
Leviathan



ihr habt euch schonmal das erstellungsdatum des threads angesehen oder?
macht aber nichts, ist trotzdem interessant.

und @cordhael: geschickt eingefädelt.

und ein zeiger auf einen zeiger braucht man z.b. für ein array von strings, sofern die strings im c-stil sind. (s. parameterliste von main() für unsere dos32-programmierer)

--

Entities: HL | HL²
Kompilierfehler
r_speeds | mehr über r_speeds

zum Seitenanfang zum Seitenende Profil || Suche
026
15.11.2002, 08:41
Kriz



Zeiger auf char*'s sind auch in C++ essentiell =)

DOS32, is ja allerliebst =) Muß ich mir mal merken!

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)

zum Seitenanfang zum Seitenende Profil || Suche
027
15.11.2002, 15:07
Prefect



Ein dreidimensionales Array muß nicht unbedingt mit drei Indirections repräsentiert werden:

Quellcode:
int *array3d;

array3d[z*w*h + y*w + x] = rand();

cu,
Prefect

--

Widelands - Gemütliche Aufbaustrategie, Free Software
Noch ein Blog - Lerne, wie die Welt wirklich ist, aber vergiss niemals, wie sie sein sollte.

zum Seitenanfang zum Seitenende Profil || Suche
028
15.11.2002, 16:09
Dein-Zahnarzt



@alle die sone fragen stellen und beantworten können
IHR seid GEEX!

--

Die Lösung aller Eurer Probleme:
||Die Liste aller Compilier Fehler.|Der ultimative Compile Log Anaylizer||
||How to: Fragen stellen.||
||Sieben Wege LEAKs zu finden.||
||Die letzten wirklich bug-freien Compiler (Juli)||

zum Seitenanfang zum Seitenende Profil || Suche
029
15.11.2002, 18:54
voidi



wann wird in einer funktion blabla(char var) ein zeiger für var verwendet und wann nicht?
besser gefragt wann sollte man einen zeiger verwenden und wann nicht, denn ich habe manchmal beispiele gesehen, da wird ein zeiger (*) verwendet und manchmal nich, anscheinend willkürlich.

--

2far.net

<Teranite> ich hab nen arschmaessigen traffic

zum Seitenanfang zum Seitenende Profil || Suche
030
15.11.2002, 19:20
Leviathan



@perfect: du nutzt hiermit aus, dass ein array in einer programmiersprache immer diskrete und nie stetige indizes hat (wäre zwar sonst schön, aber geht halt nicht). also hat man z.b. bei einem zweidimensionalen array einen stapel von reihen, wobei die reihen wiederum aus einzelnen speicherzellen bestehen. in deinem source legst du praktisch die reihen hintereinander (hab ich auch mal gebraucht, ich wollte ein dynamisches zweidimensionales array und hatte noch keine ahnung was eine linked list ist).

der speicher ist übrigends eigentlich auch eindimensional addressiert, man kann es natürlich acuh anders sehen, aber jede speicherzelle hat eigentlich nur eine nummer.

@kriz: ich hab irgentwie noch keinen richtigen c++-stil drauf, ich programmiere immer noch c, und wenn ich mal eine klasse für richtig hatlte wird eben eine eingefügt, bei den meisten sache verlasse ich mich aber auf das, was c mir bietet (und das ist auch schon recht viel...).

und was dos32 ist gar nicht mal so witzig. ich hab mal probiert, ein mit msvc++6.0 (autoren edition) übersetztes programm auf einem zweitrechner vom mir laufen zu lassen, auf dem win3.11 auf einem dos 6.0 oder sowas drauf war. dos 6.0 ist noch 16 bit, also dos16, somit lief das programm nicht. seitdem unterscheide ich imme schön zwischen dos16 und dos32.
naja, ich muss zugeben dos32 ist etwa so wie eine pferdekutsche mit 8 düsentriebwerken...

--

Entities: HL | HL²
Kompilierfehler
r_speeds | mehr über r_speeds

zum Seitenanfang zum Seitenende Profil || Suche
031
15.11.2002, 20:11
Retro



@voidi

es kommt drauf an was die funktion mit dem char anstellt. du musst dir mal überlegen was dahinter steckt, ob du nun der funktion direkt einen char oder die adresse im speicher für diesen char übergibst...

ein char * deutet oftmals auf einen c-style string hin..

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */

zum Seitenanfang zum Seitenende Profil || Suche
032
15.11.2002, 21:43
Leviathan



ergänzung zu retros erklärung:

Zitat:
ein char * deutet oftmals auf einen c-style string hin

und der ist nichts anderes als ein array von chars, und arrays werden in c immer durch einen zeiger auf ihr erstes element dargestellt, bei c-strings ist der eben vom typ char * , da ein string aus chars besteht.
bei arrays von anderen typen geht es genau so, z.b. bei einem array vom longs übergibt man einen long *.

eine andere wichtige verwendung ist afaik ein relikt aus c, sowieit ich weiss gab es da noch kein call by reference, sondern nur call by value. wenn man dort innerhalb der funktion den wert eines übergabeparameters verändern wollte musste der funktion ein zeiger auf diesen parameter übergeben werden.

bestes beispiel ist das tausch-problem:
schreibe eine funktion, die ihre beiden übergebenen parameter vertauscht:

Quellcode:
void tausche(int * a,int * b)    //c-code
{
    int c=*a;
    *a=*b;
    *b=c;
}

Quellcode:
void tausche(int &a,int &b)    //c++-code
{
    int c=a;
    a=b;
    b=c;
}

eine weitere wichtige verwendung ist mit klassen, das kann ich aber nicht so gut erklären.

:edit:
rechtschreibung...

--

Entities: HL | HL²
Kompilierfehler
r_speeds | mehr über r_speeds


Dieser Beitrag wurde am 15.11.2002 um 21:43 von Leviathan bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
033
16.11.2002, 00:01
blair



uh... lustig... ich hab auch was für den alten k-bär...

wieso kann es keine turing maschiene geben, die herausfindet ob eine beliebige andere turingmaschiene mit einem beliebigen eingabeband terminiert?

mal schaun ob der kriz sich noch an seine studientage erinnert...

--

because our freedom sits at the end of a gun
we're all here getting beat up and held back
we're all here digging knives from our backs

zum Seitenanfang zum Seitenende Profil || Suche
034
16.11.2002, 00:09
Kriz



*kram wühl*

Eine Turingmaschine alleine kann nicht rausfinden, ob eine Eingabe terminiert oder nicht. Wenn also eine Turingmaschine dies nicht auf sich selber prüfen kann, kann sie auch keine andere Turingmaschine auf Terminiertheit prüfen, da wie gesagt eine Turingmaschine keine Terminiertheit einer Eingabe im voraus prüfen kann. Und bitte erspare mir jetzt diese seitenweisen Erklärungen darüber, k? Datt Büchelchen hier über theoretische Schwachmatik habe ich immer (!) schon gehasst =)

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)

zum Seitenanfang zum Seitenende Profil || Suche
035
16.11.2002, 08:13
blair



ehrlich? ich find den theoretischen kram irgendwie lustig...

--

because our freedom sits at the end of a gun
we're all here getting beat up and held back
we're all here digging knives from our backs

zum Seitenanfang zum Seitenende Profil || Suche
036
16.11.2002, 14:18
Prefect



Habe ich schon erwähnt, daß nicht-const-Referenzen im allgemeinen evil sind?

cu,
Prefect

--

Widelands - Gemütliche Aufbaustrategie, Free Software
Noch ein Blog - Lerne, wie die Welt wirklich ist, aber vergiss niemals, wie sie sein sollte.

zum Seitenanfang zum Seitenende Profil || Suche
037
16.11.2002, 16:31
[RMen]OneStone



Was ist besser - OpenGL oder DirectX?
;)

--

georg-wicherski@pixel-house.net | http://www.pixel-house.net/ - Coding Resource| http://www.google.de/

zum Seitenanfang zum Seitenende Profil || Suche
038
16.11.2002, 17:56
Mazze



@Prefect: Nein...

--

BattleTech-MOD:
http://bthl.unitedgaming.net/

zum Seitenanfang zum Seitenende Profil || Suche
039
16.11.2002, 18:36
thinktank



Da hätte ich noch eine Frage, die du sicher auch beantworten
kannst:

Wie krieg ich ein Funktionsparser hin?

z.B. ganz einfach y = (x-3) * 3.6

--


Dieser Beitrag wurde am 16.11.2002 um 18:36 von thinktank bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
040
16.11.2002, 22:32
Kriz



Zuerstmal muß mal ne schöne L1-Grammatik zusammenschustern, nen Lexanalyzer coden, nen Syntaxverifier coden, nen Tokengetter usw... Ächz!

Wenn man in Funktionen denkt (so C like >=), dann kann man sich ja mal Gedanken machen, wie so eine math. Funktion vom Computer aufgedröselt werden könnte! Formale Beschreibung eines Ausdrucks:

Summe := Term {(+|-) Term}
Term := Faktor {(*|/|^) Faktor}
Faktor := [ - ]((Ziffer{Ziffer}[.{Ziffer}]) Ý ('(' Summe ')'))
Ziffer := (0|1|2|3|4|5|6|7|8|9)

Merkregel für den Ansatz: Rekursives Topdown Parsing... Bedeutet. Aus einer Startfunktion int Berechne() springt das Programm ganz nach unten zur letzten Regelfunktion int Ziffer(). Und nun heißt es nachdenken =)

Ich hab mal ein Programm geschrieben, das solche Ausdrücke parst und berechnet...

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)


Dieser Beitrag wurde am 16.11.2002 um 22:33 von Kriz bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
041
16.11.2002, 22:48
Leviathan



...ja, und das hab ich bis heute nicht verstanden kriz.

ist hier prinzipiell ein imperativ-funktionsorientierter ansatz einem objektorientierten überlegen? den rekursiven ansatz habe ich ja verstanden, hätte ich genau so gemacht, aber das wars auch schon...

--

Entities: HL | HL²
Kompilierfehler
r_speeds | mehr über r_speeds

zum Seitenanfang zum Seitenende Profil || Suche
042
17.11.2002, 00:14
[RMen]OneStone



Hab sowas mal in Java zusammengehackt (-> nicht wirklich gutes Beispiel, aber); wer es haben will soll mir mailen...

--

georg-wicherski@pixel-house.net | http://www.pixel-house.net/ - Coding Resource| http://www.google.de/

zum Seitenanfang zum Seitenende Profil || Suche
043
17.11.2002, 10:12
Kriz



@Leviathan: Ich poste dir auf Resourcecode mal ein Minibeispiel...

Mmmmm, Text zu lang o_O

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)


Dieser Beitrag wurde am 17.11.2002 um 10:43 von Kriz bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
044
03.12.2002, 20:27
gerk



k ich hab dann mal ne winsock-frage:

warum muss man nach dem auflösen eines namens in eine ip nur die ersten 4 bytes von h_addr_list[0] der HOSTENT-Struktur verwenden?

1 byte == 1 Zeichen
4 byte == 4 Zeichen

IP mit 4 zeichen == seltsam

greetz,
lag

--

„Und da wir uns ja seit heute etwas näher gekommen sind, kann ich nur sagen: Mir hilft da immer Norther volle Lautstärke (so wie jetzt), sodass die ganzen unrasierten, Wasserpfeife rauchenden, alternativen Wichsstudenten aus ihren, aus Bananenschalen und Abfall gebastelten, Sitzkissen fliegen.“

zum Seitenanfang zum Seitenende Profil || Suche
045
03.12.2002, 21:36
Zeeke



Öhm, ich weiß es nicht, aber ich vermute mal.... IP-Adresse = 32 bittig = 4x 1 Byte

Eine IP-Adresse besteht nunmal aus vier Oktetten, wo ist dort also die "Frage"?

--

zum Seitenanfang zum Seitenende Profil || Suche
046
04.12.2002, 13:18
gerk



mmhh.. irgendwie logisch, wenn man bedenkt, dass es überall ohnehin 32bit-adresse genannt wird. warum ich da net selber draufgekommen bin..

dummheit?

--

„Und da wir uns ja seit heute etwas näher gekommen sind, kann ich nur sagen: Mir hilft da immer Norther volle Lautstärke (so wie jetzt), sodass die ganzen unrasierten, Wasserpfeife rauchenden, alternativen Wichsstudenten aus ihren, aus Bananenschalen und Abfall gebastelten, Sitzkissen fliegen.“

zum Seitenanfang zum Seitenende Profil || Suche
047
04.12.2002, 13:39
the_viking



algemeines tauschen:

Quellcode:
<template class T>
void switch(T &a,T &b)
{
   T c = a;
   a = b;
   b = c;
}

am besten natürlich, die Klasse hat einen "CAnyClass operator=(CAnyClass& other)" :)

--

thx, cu, MfG the_viking

(( My =]=H=O=M=E=> Page! ))
Coder bei Brainshock-Interactive und bei Z-Software
My ICQ: #160959446

zum Seitenanfang zum Seitenende Profil || Suche
048
04.12.2002, 18:13
voidi



toll und jetzt ?

--

2far.net

<Teranite> ich hab nen arschmaessigen traffic

zum Seitenanfang zum Seitenende Profil || Suche
049
05.12.2002, 08:53
King of Darkness



ich weis nich das is mir teilweise alles noch zu hoch,

aber ich habe ne frage zu einer verketteten liste:

ich habe da sowas wie einen manager geschreiben der die liste nach "leeren" objekten durchsucht und die dann noch hinten an die letzte stelle transportiert

nun meine frage wäre es besser wenn ich den speicher sofort frei geben wenn das objekt nicht mehr gebraucht wird oder soll ich es in meiner liste lassen so das ich da wenn ich ein neues objekt erstelle sofort wieder den freien speicher nehmen kann

was bringt geschwindigkeit ?

--

Coding Center --- Tutorials über Programmierung und andere Themen
Amazon Preisbeobachung mit Preisalarm

zum Seitenanfang zum Seitenende Profil || Suche