Hat dir diese Antwort geholfen?
Und schon wieder ich !
@123: Ich habe den Code ausprobiert indem ich nun die Arrays vertauscht habe aber irgendwie kommt dann wieder ein ähnlicher Fehler auf mich zu:
------------------------------------------------------
Die Anweisung in "0x00416f98" verweist auf Speicher in "0xfdfdfdfd". Der Vorgang "written" konnte nicht auf dem Speicher durchgeführt werden.
------------------------------------------------------
Meine Funktion:
......................................................
#include "header.h"
void farbsymbole(char *karo_sym, char *herz_sym, char *pik_sym, char *kreuz_sym)
{
*karo_sym = 4; //Karosymbol
*herz_sym = 3; //Herzsymbol
*pik_sym = 6; //Piksymbol
*kreuz_sym = 5; //Kreuzsymbol
}
char** blatt()
{
char karo_sym = 0;
char herz_sym = 0;
char pik_sym = 0;
char kreuz_sym = 0;
int i=0, j=0;
char** karten; //ein Zeiger auf ein Feld von chars
karten = new char*[2]; //Speicher für 2 char-pointer
karten[0] = new char[32]; //Speicher für 32 chars
karten[1] = new char[3]; //Speicher für 3 chars
/* In der Funktion(farbsymbole) sind die Symbolwerte festegelegt. */
farbsymbole(&karo_sym, &herz_sym, &pik_sym, &kreuz_sym);
for(i=0;i<8;i++)
{
karten[ 0 ][ i ] = karo_sym; //Symbol für Karo
karten[ 0 ][i+8 ] = herz_sym; //Symbol für Herz
karten[ 0 ][i+16] = pik_sym; //Symbol für Pik
karten[ 0 ][i+24] = kreuz_sym; //Symbol für Kreuz
}
for (i=0;i<3;i++)
{
j = i + 55;//ASCII-Wert für 7,8 und 9
karten[1][ i ] = j;
karten[1][i+8 ] = j;
karten[1][i+16] = j;
karten[1][i+24] = j;
}
for (i=3;i<6;i++)
{
j = i + 47; //ASCII-Wert für 2,3 und 4
karten[1][ i ] = j;
karten[1][i+8 ] = j;
karten[1][i+16] = j;
karten[1][i+24] = j;
}
for (i=6;i<8;i++)
{
j = 49; //ASCII-Wert für 1
karten[1][ i ] = j;
karten[1][i+8 ] = j;
karten[1][i+16] = j;
karten[1][i+24] = j;
}
for (i=0;i<6;i++)
{
j=0; //Wert für alle Karten unter 10
karten[2][ i ] = j;
karten[2][i+8 ] = j;
karten[2][i+16] = j;
karten[2][i+24] = j;
}
for (i=6;i<8;i++)
{
j = i + 42; //ASCII-Wert für 11 und 12
karten[2][ i ] = j;
karten[2][i+8 ] = j;
karten[2][i+16] = j;
karten[2][i+24] = j;
}
return karten;
}
......................................................
Meine "header.h":
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include "string.h"
using namespace std;
extern void farbsymbole(char *karo_sym, char *herz_sym, char *pik_sym, char *kreuz_sym);
extern char** blatt();
......................................................
meine main:
#include "header.h"
int main()
{
char karten[32][3];
int i,j;
char** pArray;
pArray = blatt();
for(i=0;i<32;i++)//Ausgabe des Arrays
for (j=0;j<3;j++)
cout << karten[j];
......................................................
Irgendwie verstehe ich das ganze halt leider nicht, die ganzen Zeiger verwirren mich.
Daniel
}