Thread C++ Prüfen ob Variable definiert? (9 answers)
Opened by BratHering at 2006-05-25 19:46

Dubu
 2006-05-26 03:23
#11372 #11372
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Ein "defined" kann es bei Arrays in C/C++ nicht geben, da es keine Metainformationen zu Arrays gibt. Es werden vom Compiler nur ein passender Speicherbereich und ein Pointer darauf reserviert (oder dafür gesorgt, dass sie im laufenden Programm reserviert werden). Was in diesem Speicherbereich enthalten ist, wird komplett dem Programmierer überlassen.

Bei Arrays in C/C++/Java muss man sich einfach merken, wie groß sie sind. Üblich ist bei statischen Arrays die Verwendung von Konstanten.
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#define ARRAYLEN    10

int main(void)
{
   int array[ARRAYLEN] = {1,2,3,4,5,6,7,8,9,0};
   int n = 0;
   
   while (n < ARRAYLEN)
   {
         std::cout << array[n] << std::endl;
         n++;
   }
   
   return 0;
}


Für ein komfortableres Verhalten bietet die C++-Stdlib Container wie vector oder list und Iteratoren für den Zugriff darauf.
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <vector>

using namespace std;

int main ()
{
   vector<int> array(10);
   vector<int>::iterator array_iter = array.begin();

   // 1 bis 10 zuweisen
   for (int i=1; array_iter != array.end(); ++i) {
       *array_iter++ = i;
   }
   // einfach Zuweisung an letztes Element
   array[array.size()-1] = 0;

// Array ausgeben
   array_iter = array.begin();
   while (array_iter != array.end()) {
       cout << *array_iter << " ";
       ++array_iter;
   }
   cout << endl;

   return 0;
}

View full thread C++ Prüfen ob Variable definiert?