<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Deklaration eines zweidimensionalen boolschen Array]]></title><description><![CDATA[<p>Hallo,</p>
<p>wieder eine Anfängerfrage. Wie muss ich das formulieren?</p>
<pre><code>bool ships[80][25]={false};
|57|warning: missing braces around initializer for 'bool [25]'|

ships[x][y]=true;
|33|error: invalid types 'bool[int]' for array subscript|

if (ships[x][y]==false) cout &lt;&lt; ' ';
|21|error: invalid types 'bool[int]' for array subscript|
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/278727/deklaration-eines-zweidimensionalen-boolschen-array</link><generator>RSS for Node</generator><lastBuildDate>Mon, 24 Aug 2026 23:22:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/278727.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 12 Dec 2010 00:52:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Deklaration eines zweidimensionalen boolschen Array on Sun, 12 Dec 2010 00:52:11 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>wieder eine Anfängerfrage. Wie muss ich das formulieren?</p>
<pre><code>bool ships[80][25]={false};
|57|warning: missing braces around initializer for 'bool [25]'|

ships[x][y]=true;
|33|error: invalid types 'bool[int]' for array subscript|

if (ships[x][y]==false) cout &lt;&lt; ' ';
|21|error: invalid types 'bool[int]' for array subscript|
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1993139</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1993139</guid><dc:creator><![CDATA[zeropage]]></dc:creator><pubDate>Sun, 12 Dec 2010 00:52:11 GMT</pubDate></item><item><title><![CDATA[Reply to Deklaration eines zweidimensionalen boolschen Array on Sun, 12 Dec 2010 10:28:12 GMT]]></title><description><![CDATA[<p>Welchen Compiler verwendest du?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1993186</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1993186</guid><dc:creator><![CDATA[Osbios]]></dc:creator><pubDate>Sun, 12 Dec 2010 10:28:12 GMT</pubDate></item><item><title><![CDATA[Reply to Deklaration eines zweidimensionalen boolschen Array on Sun, 12 Dec 2010 10:51:51 GMT]]></title><description><![CDATA[<p>Die Warnung kann ich mir erklären; das ist ein zweidimensionales Array, da muss du zwei geschweifte Klammern um dein <code>false</code> machen (das <code>false</code> gilt natürlich nur für das erste Element).<br />
Der Rest ist, soweit ich erkennen kann, korrekt. Welchen Compiler verwendest du?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1993200</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1993200</guid><dc:creator><![CDATA[kormisch]]></dc:creator><pubDate>Sun, 12 Dec 2010 10:51:51 GMT</pubDate></item><item><title><![CDATA[Reply to Deklaration eines zweidimensionalen boolschen Array on Sun, 12 Dec 2010 19:29:06 GMT]]></title><description><![CDATA[<p>Ich verwende den GNU GCC Compiler. Auch wenn man es schlecht erkennt, aber da sind zwei geschweifte Klammern und das false.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1993444</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1993444</guid><dc:creator><![CDATA[zeropage]]></dc:creator><pubDate>Sun, 12 Dec 2010 19:29:06 GMT</pubDate></item><item><title><![CDATA[Reply to Deklaration eines zweidimensionalen boolschen Array on Sun, 12 Dec 2010 19:59:52 GMT]]></title><description><![CDATA[<p>Ich glaube _kormisch_ meint wohl Doppelklammen im Sinne von {{false}} weil es sich um ein 2d Array handelt.</p>
<p>Mit dem gcc 4.2 (Debian) funktioniert es so wie es in deinem ersten Post steht.<br />
Ist dort eventuell ein Zeichen zwischen, welches dein Editor nicht anzeigt? Ansonsten habe ich keine Idee was das Problem sein könnte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1993458</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1993458</guid><dc:creator><![CDATA[Osbios]]></dc:creator><pubDate>Sun, 12 Dec 2010 19:59:52 GMT</pubDate></item><item><title><![CDATA[Reply to Deklaration eines zweidimensionalen boolschen Array on Sun, 12 Dec 2010 20:40:05 GMT]]></title><description><![CDATA[<p>Wenn ich mit VC2008 kompiliere, erhalte ich folgende Fehlermeldung:</p>
<pre><code>ships[x][y]=true;
error C2109: Index erfordert ein Array oder einen Zeigertyp
</code></pre>
<p>Hilft Euch (oder mir) das weiter?</p>
<p>EDIT: Ich glaube, das liegt irgendwie an meinen Funktionsaufrufen. In der main funktioniert das auch bei mir einwandfrei. Könnt Ihr bitte mal schauen, wo bei mir der Fehler liegt?</p>
<pre><code>#include &lt;windows.h&gt;
#include &lt;iostream&gt;
#include &lt;conio.h&gt;

using namespace std;

const int UP = 72;
const int DOWN = 80;
const int LEFT = 75;
const int RIGHT = 77;
const int SPACE = 32;

void setCursor(HANDLE set, int x, int y){
    COORD pos;
    pos.X = x;
    pos.Y = y;
    SetConsoleCursorPosition(set, pos);
}

void setShip(HANDLE set, bool ships, int x, int y){
    ships[x][y]=true;
    setCursor (set, x, y), cout &lt;&lt; 'S';

}

void editField(HANDLE set, bool ships){
    int x=0, y=2;
    int key;

    while(true){
        key=getch();
        if (ships[x][y]==false) cout &lt;&lt; ' ';
        if (key==SPACE) setShip(set, ships, x, y);
        if (key==RIGHT) x++;
        if (x==80) x=0;
        if (key==LEFT) x--;
        if (x==-1) x=79;
        if (key==DOWN) y++;
        if (y==25) y=2;
        if (key==UP) y--;
        if (y==1) y=24;
        setCursor (set, x, y), cout &lt;&lt; '_';

    }

}

int main(){
    HANDLE set=GetStdHandle(STD_OUTPUT_HANDLE);
    bool ships[80][25]={{false}};

    editField(set, ships);

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1993468</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1993468</guid><dc:creator><![CDATA[zeropage]]></dc:creator><pubDate>Sun, 12 Dec 2010 20:40:05 GMT</pubDate></item><item><title><![CDATA[Reply to Deklaration eines zweidimensionalen boolschen Array on Sun, 12 Dec 2010 22:29:56 GMT]]></title><description><![CDATA[<p>Der Parameter <code>ships</code> von <code>setShip</code> ist ein einzelner bool und kein zweidimensionales Array von bools.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1993530</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1993530</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Sun, 12 Dec 2010 22:29:56 GMT</pubDate></item><item><title><![CDATA[Reply to Deklaration eines zweidimensionalen boolschen Array on Sun, 12 Dec 2010 22:53:01 GMT]]></title><description><![CDATA[<p>Ah vielen Dank. Das wirds sein. Kannst Du mir sagen, wie ich es schreiben muss? Das, was ich gefunden habe, funktioniert nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1993538</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1993538</guid><dc:creator><![CDATA[zeropage]]></dc:creator><pubDate>Sun, 12 Dec 2010 22:53:01 GMT</pubDate></item><item><title><![CDATA[Reply to Deklaration eines zweidimensionalen boolschen Array on Sun, 12 Dec 2010 23:10:12 GMT]]></title><description><![CDATA[<p>Als Lösungen, die nicht zu abgefahren für dich sind:<br />
- einen bool** als Parameter. Dann musst du noch zwei zusätzliche Parameter für die Dimensionen mitgeben. Schlechte Lösung.<br />
- einen Datencontainer verwenden, der die Arbeit für dich abnimmt, z. B. std::vector.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1993541</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1993541</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Sun, 12 Dec 2010 23:10:12 GMT</pubDate></item><item><title><![CDATA[Reply to Deklaration eines zweidimensionalen boolschen Array on Sun, 12 Dec 2010 23:35:39 GMT]]></title><description><![CDATA[<p>Wie lautet denn die Syntax eines mehrdimensionalen vector-Array?</p>
<pre><code>void setShip(HANDLE set, vector&lt;bool&gt;&amp; ships, int x, int y){
    ships.at(x,y)=true; // |22|error: no matching function for call to 'std::vector&lt;bool&gt;::at(int&amp;, int&amp;)'|
    setCursor (set, x, y), cout &lt;&lt; 'S';

}
</code></pre>
<p>ist falsch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1993544</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1993544</guid><dc:creator><![CDATA[zeropage]]></dc:creator><pubDate>Sun, 12 Dec 2010 23:35:39 GMT</pubDate></item><item><title><![CDATA[Reply to Deklaration eines zweidimensionalen boolschen Array on Sun, 12 Dec 2010 23:35:23 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">void setShip(HANDLE set, vector&lt;vector&lt;bool&gt; &gt;&amp; ships, int x, int y){
    ships[x][y]=true;
    setCursor (set, x, y);
    cout &lt;&lt; 'S';
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1993546</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1993546</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Sun, 12 Dec 2010 23:35:23 GMT</pubDate></item><item><title><![CDATA[Reply to Deklaration eines zweidimensionalen boolschen Array on Sun, 12 Dec 2010 23:57:50 GMT]]></title><description><![CDATA[<p>Dann bekomme ich</p>
<pre><code>|22|error: no match for 'operator[]' in '((std::vector&lt;bool&gt;*)ships)-&gt;std::vector&lt;bool, _Alloc&gt;::operator[] [with _Alloc = std::allocator&lt;bool&gt;, std::vector&lt;bool, _Alloc&gt;::reference = std::_Bit_reference, std::vector&lt;bool, _Alloc&gt;::size_type = unsigned int](((unsigned int)x))[y]'|
</code></pre>
<p>Warum kann man das denn nicht mit .at() lösen? Ich dachte, das wäre besser?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1993559</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1993559</guid><dc:creator><![CDATA[zeropage]]></dc:creator><pubDate>Sun, 12 Dec 2010 23:57:50 GMT</pubDate></item><item><title><![CDATA[Reply to Deklaration eines zweidimensionalen boolschen Array on Mon, 13 Dec 2010 00:05:04 GMT]]></title><description><![CDATA[<pre><code>(std::vector&lt;bool&gt;*)ships
</code></pre>
<p>Was soll das * da?</p>
<p>Aber worauf ich noch gar nicht eingegangen bin: vector&lt;bool&gt; hat leider nicht allzu viel mit vector&lt;andererTyp&gt; zu tun. Du könntest statt bool z. B. int verwenden, um den &quot;normalen&quot; vector zu verwenden.</p>
<p>Ob du dann ships[x][y] oder <a href="http://ships.at" rel="nofollow">ships.at</a>(x).at(y) benutzt, unterscheidet sich nur in der zusätzlichen Überprüfung bei at, ob der Parameter nicht zu groß oder zu klein ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1993560</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1993560</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Mon, 13 Dec 2010 00:05:04 GMT</pubDate></item><item><title><![CDATA[Reply to Deklaration eines zweidimensionalen boolschen Array on Mon, 13 Dec 2010 00:18:32 GMT]]></title><description><![CDATA[<p>Ich habe das nicht so geschrieben</p>
<pre><code>void setShip(HANDLE set, vector&lt;bool&gt;&amp; ships, int x, int y){
    ships[x][y]=true;
    setCursor (set, x, y), cout &lt;&lt; 'S';
</code></pre>
<p>Ich würde aber gerne weiterhin ein boolsches Array nutzen. Wenn das mit vector sinnlos ist, würde ich dann gerne wieder bool array[int][int] verwenden. Aber dann bleibt wieder das Problem mit der Übergabe in die Funktion.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1993564</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1993564</guid><dc:creator><![CDATA[zeropage]]></dc:creator><pubDate>Mon, 13 Dec 2010 00:18:32 GMT</pubDate></item><item><title><![CDATA[Reply to Deklaration eines zweidimensionalen boolschen Array on Mon, 13 Dec 2010 07:27:17 GMT]]></title><description><![CDATA[<p>Nicht vector&lt;bool&gt;, sondern vector&lt;vector&lt;bool&gt; &gt;.</p>
<p>Du kannst vector&lt;vector&lt;bool&gt; &gt; benutzen. Ich weiß da zwar nicht das komplette Verhalten auswendig, aber für deine Zwecke reicht das. Ansonsten nimmst du halt einfach vector&lt;deque&lt;bool&gt; &gt;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1993586</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1993586</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Mon, 13 Dec 2010 07:27:17 GMT</pubDate></item><item><title><![CDATA[Reply to Deklaration eines zweidimensionalen boolschen Array on Mon, 13 Dec 2010 16:12:24 GMT]]></title><description><![CDATA[<p>Ich habs jetzt nochmal ohne vector versucht und bekomme schon wieder einen Fehler. Ich werd noch irre!</p>
<pre><code>void editField(HANDLE set, bool** ships)

[ ... ]

bool ships[80][25];

editField(set, ships); // |error: cannot convert 'bool (*)[25]' to 'bool**' for argument '2' to 'void editField(void*, bool**)'|
</code></pre>
<p>Falls das irgendwann erledigt sein sollte, hätte ich noch die Frage, ob es eine Funktion gibt, die ein Array mit einem immer gleichen Wert füllt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1993862</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1993862</guid><dc:creator><![CDATA[zeropage]]></dc:creator><pubDate>Mon, 13 Dec 2010 16:12:24 GMT</pubDate></item><item><title><![CDATA[Reply to Deklaration eines zweidimensionalen boolschen Array on Mon, 13 Dec 2010 16:28:21 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">void editField(HANDLE set, bool (*ships)[25])//&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;

[ ... ]

bool ships[80][25];

editField(set, ships);
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
memset(&amp;array, wert, anzahl;)<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f4a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--light_bulb"
      title=":bulb:"
      alt="💡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1993873</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1993873</guid><dc:creator><![CDATA[&amp;gt;&amp;gt;..&amp;lt;&amp;lt;]]></dc:creator><pubDate>Mon, 13 Dec 2010 16:28:21 GMT</pubDate></item><item><title><![CDATA[Reply to Deklaration eines zweidimensionalen boolschen Array on Mon, 13 Dec 2010 16:58:09 GMT]]></title><description><![CDATA[<p>Ah endlich keinen Fehler <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> Danke an Dich und Michael E. Auch für memset.</p>
<p>Wobei ich</p>
<pre><code>bool (*ships)[25]
</code></pre>
<p>von der Form her etwas unglücklich finde <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1993892</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1993892</guid><dc:creator><![CDATA[zeropage]]></dc:creator><pubDate>Mon, 13 Dec 2010 16:58:09 GMT</pubDate></item><item><title><![CDATA[Reply to Deklaration eines zweidimensionalen boolschen Array on Mon, 13 Dec 2010 17:47:01 GMT]]></title><description><![CDATA[<p>Nimm nicht <code>memset()</code> . Lieber <code>std::fill()</code> , das kann auch mit C++-Objekten (Nicht-PODs) sowie mit STL-Contiainern umgehen. Nicht dass du dir Dinge aneignest, die später nicht funktionieren.</p>
<p>lemon03 schrieb:</p>
<blockquote>
<p>Wobei ich</p>
<pre><code>bool (*ships)[25]
</code></pre>
<p>von der Form her etwas unglücklich finde <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
</blockquote>
<p>Das ist halt, wenn man mit rohen Arrays arbeitet. Da gibts etliche Sonderregeln und kaum irgendwo normale Wertsemantik. Willst du wie gewohnt arbeiten (und zusätzliche Features wie Debug-Unterstützung nutzen), nimm <code>std::tr1::array</code> . Dann kannst du eine normale Referenz nehmen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1993936</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1993936</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 13 Dec 2010 17:47:01 GMT</pubDate></item><item><title><![CDATA[Reply to Deklaration eines zweidimensionalen boolschen Array on Mon, 13 Dec 2010 18:38:43 GMT]]></title><description><![CDATA[<p>Für fill() muss ich doch wieder vector nutzen? Da gabs doch die ganze Zeit Fehler. Und für tr1::array weiß ich mal wieder nicht, wie man das für ein mehrdimensionales Array nutzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1993996</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1993996</guid><dc:creator><![CDATA[zeropage]]></dc:creator><pubDate>Mon, 13 Dec 2010 18:38:43 GMT</pubDate></item><item><title><![CDATA[Reply to Deklaration eines zweidimensionalen boolschen Array on Mon, 13 Dec 2010 18:56:49 GMT]]></title><description><![CDATA[<p>Nein, <code>std::fill()</code> funktioniert auch mit Arrays.</p>
<pre><code class="language-cpp">#include &lt;algorithm&gt;

int main()
{
    const int size = 5;
    int array[size];
    std::fill(array, array+size, 42);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1994014</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1994014</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 13 Dec 2010 18:56:49 GMT</pubDate></item><item><title><![CDATA[Reply to Deklaration eines zweidimensionalen boolschen Array on Mon, 13 Dec 2010 20:39:26 GMT]]></title><description><![CDATA[<p>Ok danke, wieder etwas zu gelernt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1994060</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1994060</guid><dc:creator><![CDATA[zeropage]]></dc:creator><pubDate>Mon, 13 Dec 2010 20:39:26 GMT</pubDate></item></channel></rss>