引数として二次元配列を利用する方法について(C言語)
#define PR_SIZE 40
char hp[PR_SIZE][3];
char *initial;
initial = "aa,aa";
GetPrivateProfileString("Setting", "hp", initial, strText, 1024, ini_path);
initial = strtok(strText, ",");
for(i = 0; i < PR_SIZE; i++) strcpy(hp[i], "\0");
for(i = 0; initial != NULL && i < PR_SIZE; i++){
strcpy(hp[i], initial);
initial = strtok(NULL, ",");
}
という部分を関数化しようとして、
ReadIni_pr(&(pr.hp[0][3]), "hp", "aa,aa"); //関数呼び出し
void ReadIni_pr(char *a[], const char* str, char* initial){
char strText[128];
GetPrivateProfileString("Setting", str, initial, strText, 1024, ini_path);
for(int i = 0; i < PR_SIZE; i++)
strcpy(a[i], "\0");
initial = strtok(strText, ",");
for(int i = 0; initial != NULL && i < PR_SIZE; i++){
strcpy(a[i], initial);
initial = strtok(NULL, ",");
}
}
と書いてみたのですが、第一引数の処理がどうしても上手くいきません
できるだけ関数の内部を変更しない形で、上手くいく方法はないでしょうか
(インクルードに関しては省略してあります)
あと、char sp[PR_SIZE][5];に関しても同様の関数で処理したいのですが、可能でしょうか?
お礼
多分そうだと思います! ありがとうございました。