Problem mit Array

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
zlurp
Beiträge: 29
Registriert: 04.04.2003 22:34:45

Problem mit Array

Beitrag von zlurp » 23.11.2003 20:26:11

Also, hab da ein kleines Problem beim Programmieren mit C++:
Seit ich auf sarge und damit auf g++ 3.3.2 upgegradet habe, kompiliert mein Übungsprogramm nicht mehr (bin fleißig am C++ lernen). Dabei krieg ich folgende Fehlermeldung:
error: ISO C++ forbids assignment of arrays
So weit, so gut. Habe bisher eine lokales Array im Konstruktor gehabt, in dem ich einige Werte (über 100) gespeichert hab. Hab die nach folgendem Muster angelegt und an eine "globale" Eigenschaft übergeben:
char a[][] = { "bla", "bla", "bla" };
b = a;
a ist dabei lokal, b ist global. Ich hoffe, das ist jetzt irgendwie verständlich.

Dass das so irgendwie blöd ist, weiß ich. Hatte nur
a) keinen Bock, die ganzen Werte (wie gesagt: über 100) einzeln zuzuweisen und
b) konnte ich die globale Eigenschaft nicht direkt mit den Werten vorbelegen (war jedenfalls bei g++2.9 so)

Weil ich mit der neuen Version von g++ nun aber das Array nicht mehr übergeben kann, würd mich mal interessieren, wie man das Problem anders lösen kann, bzw. man so etwas eigentlich bewerkstelligt

Torsten
Beiträge: 384
Registriert: 24.09.2002 22:51:07
Kontaktdaten:

Beitrag von Torsten » 28.11.2003 09:27:09

Moinsen,

die Fehlermeldung besagt eigentlich alles.

Probiere lieber ein <vector> oder Valarray.

Grüße

Torsten

Benutzeravatar
bitbieger
Beiträge: 179
Registriert: 23.10.2003 08:26:00
Kontaktdaten:

Beitrag von bitbieger » 28.11.2003 11:16:20

Torsten hat geschrieben:Probiere lieber ein <vector> oder Valarray.
Also dann eher so:

Code: Alles auswählen

#include <vector>
#include <string>
#include <iostream>
using namespace std;

typedef vector<string> strvec;

strvec b;

int main(void)
{
        strvec a;

        a.push_back("bla");
        a.push_back("laber");
        a.push_back("fasel");

        b = a;

        cout    << "b: "
                << b[0] << ", "
                << b[1] << ", "
                << b[2] << endl;

        return 0;
}
Obwohl es dann natürlich keinen Sinn macht, den Vector nur zum Kopieren aufzubauen.
Wenn du dich in c++ einarbeitest, dann ist es auf jeden Fall ratsam, sich mit der stl (Standard Template Library) auseinanderzusetzen.

cu,
bitbieger

zlurp
Beiträge: 29
Registriert: 04.04.2003 22:34:45

Beitrag von zlurp » 28.11.2003 17:14:09

super, danke für die Tips!!

Antworten