Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

TrommlBomml

Community-Fossil

  • »TrommlBomml« ist der Autor dieses Themas

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

1

02.01.2011, 11:57

Über Arrays und Zeiger

Gut ich habe mich vllt etwas undeutlich ausgedrückt in Bezug auf Arrays:

C-/C++-Quelltext

1
int feld[12];


der Bezeichner feld ist nichts anderes als ein zeiger auf den Stack - wenn der herr auf klugscheisser machen muss ;) - es geht ums prinzip!

Ja das mit dem Zweidimensionalen Array habe ich übersehen - machst ein eindimensionales draus und es funktioniert einwandtfrei.

Elmaron

unregistriert

2

02.01.2011, 12:02

(entfernt weil veraltet)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Elmaron« (07.01.2020, 23:10)


TrommlBomml

Community-Fossil

  • »TrommlBomml« ist der Autor dieses Themas

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

3

02.01.2011, 12:04

Wenn angeblich zeiger und (eindimensionale) arrays so unterschiedlich sind, warum geht dann folgendes?!

C-/C++-Quelltext

1
2
3
int a[100];
int b* = a;
b[10] = 100;


Nach deiner Definition würde das nicht gehen. oder stell dir vor, folgendes geht auch! das sollte ein doofer zeiger nach deiner definiton NICHT können ;)

C-/C++-Quelltext

1
int c* = new int[100];


Da ist ein Zeiger ein Array 8| Sie unterscheiden sich speichertechnisch nicht - durch den Index-Operator wird blos die adresse um sizeof(elementgröße) verschoben - ausnahme void*. Wenn du halt nur ein Element alloziiert hast - egal ob stack, heap oder in deinem kopf - dann gibt es eine access violation - logischerweise.

Elmaron

unregistriert

4

02.01.2011, 12:07

(entfernt weil veraltet)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Elmaron« (07.01.2020, 23:10)


NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

5

02.01.2011, 12:08

blah... ihr verschreckt den neuen ja xD
der arme. kann das nen mod löschen oder verschieben?^^

edit: jetzt hat der trommle aufn beitrag geantwortet den ich schon editiert hab. habs mir anders überlegt, sry ^^

achja... new ist auch nur eine funktion die einen zeiger zurück gibt ;)
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »NachoMan« (02.01.2011, 12:16)


TrommlBomml

Community-Fossil

  • »TrommlBomml« ist der Autor dieses Themas

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

6

02.01.2011, 12:11

Eine Funktion ist auch nur eine Menge an Anweisungen im Codesegment ab einer bestimmten Adresse. Wie sollen sonst Sprünge realisiert werden? Von Neumann-Architektur ist eigentlich ne Grundlage :rolleyes:

Und Funtkionszeiger werden in C++ anders definiert, man muss sie typisieren :rolleyes:

jokester

Treue Seele

Beiträge: 125

Wohnort: Mainz

  • Private Nachricht senden

7

02.01.2011, 12:12

Wenn angeblich zeiger und (eindimensionale) arrays so unterschiedlich sind, warum geht dann folgendes?!

C-/C++-Quelltext

1
2
3
int a[100];
int b* = a;
b[10] = 100;


Weil es für arrays einen to-pointer-decay gibt, sind also implizit in Zeiger konvertierbar. float f = irgendeinint; geht ja auch, trotzdem behauptet niemand, dass ints floats sind.
Und sonst gib mal sizeof a und sizeof b aus.
"There is a theory which states that if ever anyone discovers exactly what the Universe is for and why it is here, it will instantly disappear and be replaced by something even more bizarre and inexplicable. There is another theory which states that this has already happened" -- Douglas Adams.

Elmaron

unregistriert

8

02.01.2011, 12:17

(entfernt weil veraltet)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Elmaron« (07.01.2020, 23:10)


TrommlBomml

Community-Fossil

  • »TrommlBomml« ist der Autor dieses Themas

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

9

02.01.2011, 12:27

Okay mit der Argumentation bin ich einverstanden. Anscheinend ist mein Wissen doch etwas eingerostet.

Elmaron

unregistriert

10

02.01.2011, 12:33

(entfernt weil veraltet)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Elmaron« (07.01.2020, 23:10)


Werbeanzeige