Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Hazel JLI MVP


Alter: 40 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 21.07.2003, 16:39 Titel: |
|
|
nEp: Schick mal bitte den Programmcode. Ich glaube bei statisch angelegten Arrays geht das nämlich, bin mir aber nicht sicher. _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
 |
Mr.X Junior JLI'ler
Anmeldedatum: 15.04.2003 Beiträge: 88
Medaillen: Keine
|
Verfasst am: 21.07.2003, 16:55 Titel: |
|
|
aus der MSDN:
When applied to a statically dimensioned array, sizeof returns the size of the entire array. The sizeof operator cannot return the size of dynamically allocated arrays or external arrays.
Ja sorry, so wie Du es gepostest hat, geht es, da es ein statisches Array ist. Allerdings weisst Du in diesem Fall ja eh schon die Länge des Arrays bei der Implementation.
Bei Arrays, welche zur Laufzeit angelegt wurden, funktioniert dies allerdings nicht.
Das dies geht liegt eben daran, weil der Compiler über Deinen geschriebenen Code bereits den Zusammenhang (weil die Variable für ein Feld angelegt wurde) herstellen kann, das Du die Länge eines Arrays willst und diese Länge gleich mitkompiliert. Nachdem Dein Code kompiliert wurde, ist es unmöglich für das Programm, durch eine Funktion die Länge eines Arrays festzustellen. |
|
Nach oben |
|
 |
nEp Junior JLI'ler
Anmeldedatum: 03.06.2003 Beiträge: 75
Medaillen: Keine
|
Verfasst am: 21.07.2003, 17:06 Titel: |
|
|
Ja natürlich geht es, den Programmcode hatte ich ja auch schon gepostet. Und bei dynamisch angelegten Arrays hat man die Größe doch sowieso meistens irgendwo in ner Variablen stehen, zumal muss man sich ja sowieso das ganze Zeugs kümmern.
Und irgendwie ist der ganze Thread sowieso sinnlos find ich :/ |
|
Nach oben |
|
 |
Hazel JLI MVP


Alter: 40 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
|
Nach oben |
|
 |
Mr.X Junior JLI'ler
Anmeldedatum: 15.04.2003 Beiträge: 88
Medaillen: Keine
|
Verfasst am: 21.07.2003, 17:21 Titel: |
|
|
Salom
 |
|
Nach oben |
|
 |
gl_echse JLI'ler

Anmeldedatum: 01.01.2003 Beiträge: 105
Medaillen: Keine
|
Verfasst am: 21.07.2003, 17:50 Titel: |
|
|
Das was Millenium meinte ist eine verkettete liste:
Code: |
struct element{
int bla;
element* next;
};
std::vector<element> liste;
// code zum anfügen eines elements:
element neues;
neues.bla = x;
neues.next = &
liste.push_back(neues);
liste[liste.size()-2].next = &liste[liste.size()-1];
|
leider relativ sinnlos in diesem zusammenhang, da mann eh durch std::vector::size() die größe erfährt. das anhand einer normalen c-array zu machen wäre schwachsinnig, da man für verkettete listen einen flexiblen array haben sollte. ist mit c-arrays über buffer/new&delete machbar, aber umständlich, weil man dafür auch wieder eine größenvariable benötigen würde.... |
|
Nach oben |
|
 |
Codechecker Mini JLI'ler
Anmeldedatum: 30.12.2002 Beiträge: 16
Medaillen: Keine
|
Verfasst am: 21.07.2003, 22:26 Titel: |
|
|
meinst du vielleicht sowas
Code: |
#include <iostream.h>
typedef int feldtyp[10];
int LaengeArray( feldtyp Feld);
void main(void)
{
feldtyp Feld;
int x = LaengeArray(Feld);
cout << "Der Index des letzten Elemtents ist:" << x << "\n";
}
int LaengeArray( feldtyp Feld)
{
int i = 0;
while(Feld[i] != "\0" )
{
i++;
}
return i;
}
|
oder irre ich mich da? |
|
Nach oben |
|
 |
Hazel JLI MVP


Alter: 40 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
|
Nach oben |
|
 |
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 21.07.2003, 23:00 Titel: |
|
|
ok, hat sich jetzt erledigt, also wir wir alle gemerkt haben, ist es bei nicht statischen Arrays unmöglich die Anzahl der Elemente des Arrays auszurechenen...hab die ANzahl jetzt in ner extra Variablen gespeichert.
Trotzdem Danke!  _________________ The source of all power is in its destiny... |
|
Nach oben |
|
 |
|