Hallo,
ich probiere, in einem STL-stack ein zweidimensionales Array mit fester Größe zu speichern. Der Code sieht so aus:
#include
#include
using namespace std;
stack foo;
void bar(char a[2][2]){
foo.push(a);
}
int main(void){
char a[2][2] = {{'a', 'b'}, {'c', 'd'}};
bar(a);
return 0;
}
Jetzt bekomme ich beim kompilieren die Fehlermeldung
test.cpp: In function `void bar(char (\*)[2])':
test.cpp:9: error: no matching function for call to `std::stack \> \>::stuck\_out\_tongue:ush(char (\*&:wink:[2])'
/usr/include/c++/3.3/bits/stl\_stack.h:175: error: candidates are: void
std::stack::stuck\_out\_tongue:ush(typename \_Sequence::value\_type&:wink: [with \_Tp
= char[2][2], \_Sequence = std::deque
\>]
Offensichtlich beschwert sich der Kompiler (g++ aus der GNU Compiler Collection, version 3.3.5 (Debian 1:3.3.5-13), mit den Optionen -Wall -ansi), dass die Typen von a und char[2][2] nicht zusammenpassen. Was mache ich falsch, und wie mache ich es richtig?
Nur so am Rande: auf zweidimensionale Arrays zu verzichten ist für mich kaum möglich…
Grüße,
Moritz