我試圖在c中的5x5二維char *數組中替換一個字符串值。我設法將正確位置的值替換,但由於某種原因,數組中的替換字符總是「p」,而不是所需的字符。我曾嘗試使用strcpy()和strcat()作爲分配值的替代方法,遺憾的是這兩種方法導致了分段錯誤。任何建議將不勝感激。代碼如下所示。在二維char *數組中取代字符串值c/java jni
有問題的二維數組是這樣的:
char *map[5][5] = {
{".", ".", ".", ".", "."},
{".", ".", ".", ".", "."},
{".", ".", "G", ".", "."},
{".", ".", ".", ".", "."},
{".", ".", ".", ".", "."} };
而且方法,我用在特定的位置來改變性格:
JNIEXPORT void JNICALL Java_MapJNI_replaceTile(JNIEnv *env, jobject jObject, jint x, jint y, jchar tile){
char tileChar = (char)tile;
map[y][x] = &tileChar;
}
將瓷磚從一個Java類傳入。
爲什麼'*的char [] []',而不是'的char [] []' – Sniper
1.我看到的問題是,您使用的是指針的指針的指針:字符*地圖[5] [5]。 2.你想要C代碼,但你使用的是JNDI,爲什麼? – moldovean