Ich versuche, einen String-Wert in einem 5x5 2D char * -Array in c zu ersetzen. Ich habe es geschafft, den Wert an der richtigen Stelle zu ersetzen, aber aus irgendeinem Grund ist das Ersatzzeichen im Array immer ein 'p' anstelle des gewünschten Zeichens. Ich habe versucht, strcpy() und strcat() als Alternative zum Zuweisen des Werts zu verwenden, obwohl diese beiden Methoden leider einen Segmentierungsfehler verursachen. Irgendwelche Vorschläge würden sehr geschätzt werden. Der Code ist unten angehängt.String-Wert in 2D char * -Array ersetzen c/java jni
Der 2D-Array in Frage wie folgt aussieht:
char *map[5][5] = {
{".", ".", ".", ".", "."},
{".", ".", ".", ".", "."},
{".", ".", "G", ".", "."},
{".", ".", ".", ".", "."},
{".", ".", ".", ".", "."} };
Und die Methode, die ich das Zeichen an einer bestimmten Position zu ändern bin mit ist:
JNIEXPORT void JNICALL Java_MapJNI_replaceTile(JNIEnv *env, jobject jObject, jint x, jint y, jchar tile){
char tileChar = (char)tile;
map[y][x] = &tileChar;
}
Die Fliese aus einer Java-Klasse übergeben wird .
Warum die '* char [] []' statt 'char [] []' – Sniper
1. Das Problem, das ich sehe, ist, dass Sie einen Zeiger eines Zeigers eines Zeigers verwenden: char * Karte [5] [5]. 2. Sie möchten den Code in C, aber Sie verwenden JNDI, warum? – moldovean