Visual Studio 2005(C \ C ++)を使用しています。
文字列をchar配列として関数に渡します。パラメータとして渡されたファイルを開いて使用したい。ファイル名を最初のパラメーターとしてハードコーディングすると完全に機能するため、コードがある程度機能することはわかっています。
値を時計として見ると、値には文字列リテラルのほかにアドレスが含まれていることに気付きます。ファイル名をポインタとして渡そうとしましたが、__w64による型変換について文句を言います。前に言ったように、fileNameの代わりに「filename.txt」を使用すると正常に機能します。私は困惑しています。
void read(char fileName[50],int destArray[MAX_R][MAX_C],int demSize[2])
{
int rows=0;
int cols=0;
int row=0;
int col=0;
FILE * f = fopen(fileName,"r");
...
呼び出し元の関数コードは次のとおりです。
char in_filename[50];
int dem[MAX_R][MAX_C];
int dem_size[2];
get_user_input( in_filename);
read(in_filename, dem, dem_size );
ファイル名に追加した時計では、正しいテキストが表示されるため、データが渡されます。