Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[ C++ ] Jak zmienić wartość tablicy dwuwymiarowej sposobem klamrowym?

Ostatnio zmodyfikowano 2012-07-27 17:26
Autor Wiadomość
Arturr300
Temat założony przez niniejszego użytkownika
[ C++ ] Jak zmienić wartość tablicy dwuwymiarowej sposobem klamrowym?
» 2012-07-26 10:38:56
Witam.
Zadeklarowałem tablicę dwuwymiarową, jednak nie przypisałem jej wartości:
int tablica[10][10];
I chciałbym dopiero później przypisać jej wartość sposobem z nawiasami klamrowymi (nie chcę do każdej komórki osobno, bo trochę za dużo z tym roboty), ale nie wiem jak to zrobić... Próbowałem różnych rzeczy, ale kompilator wywala błędy.
Używam Visual C++ 2010 Express Edition

Pozdrawiam i z góry dziękuję za odpowiedź :)
P-61130
m4tx
» 2012-07-26 10:57:20
wartości
A nie zawartości? :)

Próbowałem różnych rzeczy
Jakich?

kompilator wywala błędy
Jakie?

A poza tym, czemu nie przypiszesz zawartości tablicy przy deklaracji? :)
P-61131
SeaMonster131
» 2012-07-26 11:05:01
Nie da się, choć mogę się mylić :)

// A jednak się da, dobrze wiedzieć :P
P-61132
OSA_PL
» 2012-07-26 11:17:50
C/C++
tablica = {
    { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 },
    { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 },
    { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 },
    { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 },
    { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 },
    { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 },
    { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 },
    { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 },
    { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 },
    { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 },
};
 
P-61134
Arturr300
Temat założony przez niniejszego użytkownika
a
» 2012-07-26 11:29:31
@UP
Próbuję tak, i wychodzi błąd:
IntelliSense: this declaration has no storage class or type specifier

1. Tak, chodziło mi o zawartość :)
2. Próbowałem:

tablica={{ /* zawartość, tu wszystko dobrze */ }}
Błąd: expected an expression

tablica[][]= //zawartość
Błąd
IntelliSense: an array may not have elements of this type

tablica [10][10]= //zawartość
Błąd: IntelliSense: this declaration has no storage class or type specifier

3. Chcę tak zrobić, ponieważ:
- w klasie Plansza deklaruję tablicę typu POLE o nazwie pl i specyfikatorze Protected
- chcę utworzyć metodę klasy Plansza, która tej tablicy przypisuje zawartość
P-61136
pekfos
» 2012-07-26 12:10:42
C/C++
int tab[ 10 ];
tab = { 0, 1 };
Takie przypisanie dotyczy wyłącznie inicjalizacji tablicy. (Inicjalizacja agregatowa)
C/C++
int tab[ 10 ] = { 0, 1 };
Jeśli koniecznie tak chcesz przypisać, to stwórz nową tablicę, zainicjalizuj ją i skopiuj do docelowej (np przez memcpy()).
P-61143
Arturr300
Temat założony przez niniejszego użytkownika
a
» 2012-07-27 10:43:47
Dziękuję wszystkim, pomysł z memcpy() wydaje się być najlepszy, potem zobaczę.
Pozdrawiam :)
P-61229
DejaVu
» 2012-07-27 17:26:09
Ja od siebie jeszcze dodam, że klamrami można nadawać wartości tablicom tylko i wyłącznie przy jej tworzeniu (przynajmniej jeżeli chodzi o standard C++). Standard C++11 być może daje takie możliwości w kontekście » standard C++11initializer_list, jednak tego pewien nie jestem ;P
P-61258
« 1 »
  Strona 1 z 1