| Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme. |
Diskussion: [C++]Mehrdimensionales Array im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Hi, erstmal der Code: Code: const int hoehe = 10; const int breite = 10; struct S_Feldinfo { bool ...
![]() |
| | #1 (permalink) |
| Registriert seit: 02.12.07 ![]() Likes: 0 | Anzeige Hi, erstmal der Code: Code: const int hoehe = 10;
const int breite = 10;
struct S_Feldinfo
{
bool besetzt;
};
S_Feldinfo Feld[hoehe][breite];
int main()
{
int x;
int y;
Feld[5][5].besetzt = true;
for ( y = 0; y < hoehe; y ++ )
{
for ( x = 0; x < breite; x ++ )
{
if ( Feld[x][y].besetzt == true )
{
cout << "X";
}
else
{
cout << ".";
}
}
cout << endl;
};
getchar();
return EXIT_SUCCESS;
} Es kommt immer die Meldung "variable-size type declared outside of any function" .. welche Funktion ? :x mfg nookstar |
| | |
| | #2 (permalink) |
| die initialisierung von arrays in c++ erwartet eine konstante größe. das ist alles. die größe mit dem das array initialisiert wird, muss schon vor der kompilierung feststehen. hat sich irgendwer mal so ausgedacht sonst hättest du ja ein dynamisches array | |
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) |
| Moderator ![]() Registriert seit: 20.07.05 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 202 | Du meinst, der Compiler muss nachschauen, ob Du die Variable ja auch nirgendwo veränderst? Ein Javacompiler würde das vielleicht machen (*flame* Nee, soweit ich mich erinnere, wird hier per Grammatikdefinition von C++ schon ein konstanter Ausdruck erwartet. http://www.math.uni-wuppertal.de/~ax.../oop/oopA.html
__________________ Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf! Selig, wer nichts zu sagen hat und trotzdem schweigt. |
| | |
| | #4 (permalink) |
| da hab ich mich wohl ein bisschen komisch ausgedrückt | |
| | |
| | #5 (permalink) |
| Moderator ![]() Registriert seit: 20.07.05 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 202 | M4CH!NE: ich bezog mich eigentlich nur auf den Post von nookstar. Wollte noch einen anständigen Verweis beifügen und hab wohl zu lange mit der Antwort getrödelt Bezeichner [ constant_expr() ]
__________________ Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf! Selig, wer nichts zu sagen hat und trotzdem schweigt. |
| | |
| | #7 (permalink) |
| Themenstarter Registriert seit: 02.12.07 ![]() Likes: 0 | Alles klar danke für die Anworten. Ich habe aber noch eine Frage und zwar wenn ein Array zugewiesen wird kann man diese Zuweisung dann nachher nicht mehr ändern ? Also so : Code: char Name[5] = "Tom"; cout << Name; Name = "hans"; cout << Name; |
| | |
| | #8 (permalink) |
| Registriert seit: 11.01.08 ![]() Likes: 0 | Das gleiche Problem habe ich auch .. Aber ich glaube man kann nur jeden Char einzelnd ändern in dem man den Index auswählt etwa so: array[0] = 'n'; Ich frage mich wie man dsa komplette array als ganzes Wort editiert also wie einen string. mfg |
| | |
| | #9 (permalink) | ||
| Registriert seit: 13.12.07 ![]() Likes: 0 | Zitat:
Zitat:
| ||
| | |
| | #11 (permalink) |
| Registriert seit: 16.12.06 ![]() Likes: 0 | ich kann dir da helfen ... du musst das array dynamisch anlegen uind dsas geht in etwas so int *array = 0; array = new int [6]; und wenn du fertig mit dem Prgramm ablauf bist musst du den Speicher des arrays löschen. delete[] Lotto; // Freigabe des Speichers Lotto = 0; // Zeiger sichern |
| | |
| | #12 (permalink) | |||
| Registriert seit: 12.01.08 ![]() Likes: 0 | Zitat:
Code: char *Name = "Tom"; cout << Name; Name = "hans"; cout << Name; Code: char *Name1 = "Tom"; char *Name2 = Name1; Name1 = "hans"; cout << Name1; cout << Name2; | |||
| | |
| | #13 (permalink) | |
| Registriert seit: 16.12.06 ![]() Likes: 0 | Zitat:
Natürlich kann man das ändern ... wenn du ein array ausgeben willst musst du auch den INDEX angeben ... genauso wie bei der zuweisung Code: char Name[5] = "Tom"; // [5] ist der index cout << Name; // hier muss es heissen -> cout << Name[5]; Name = "hans"; // hier wiederum -> Name[INDEX]="hans"; cout << Name;// cout Name[INDEX]; | |
| | |
| | #14 (permalink) |
| Registriert seit: 12.01.08 ![]() Likes: 0 | Nein, einen Index muss man nur angeben, wenn man auf ein einzelnes Array-Element zugreifen oder es ändern will. Und die Angabe "[5]" in "char Name[5] = "Tom"" ist die Größe des Arrays, kein Index. |
| | |
| | #15 (permalink) | |
| Registriert seit: 13.11.04 ![]() Likes: 0 | wenn man c++ programmiert, dann will man normalerweise std::vector und std::string verwenden. die kuemmern sich dann auch um dieses ganze laestige verwalten von speicher... http://www.cppreference.com/cppvector/index.html http://www.cppreference.com/cppstring/index.html es gibt da noch so ne voellig kaputte funktion um dynamisch speicher auf dem stack zu allozieren; alloca. die sollte man aber meiden wie die pest. :) aus der glibc manpage zu alloca: Zitat:
| |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| C mehrdimensionales dynamisches Array | marcotesoalli | Code Kitchen | 0 | 12.11.08 21:27 |
| php curl array string zu array parsen | b4ck | (Web-) Design und webbasierte Sprachen | 5 | 12.12.07 17:11 |
| c / array reseten | bikmaek | Code Kitchen | 5 | 15.11.05 18:41 |
| c++ zeichen aus array | Paulchen | Code Kitchen | 2 | 24.10.05 16:54 |
| C int array[n] zu x int ??? | NeoN | Code Kitchen | 11 | 25.04.04 20:38 |