質問: (int*)malloc(sizeof(int) * point_number); char data_file[256]; //csvファイル読み込み FILE* fp; sprintf_s(data_file, "tyrannno_000_para_data_100split_z.csv"); fopen_s(&fp, "tyrannno_000_para_data_100split_z.csv", "rb"); //配列に移す while (fscanf_s(fp, "%d,%d,%d", &point_cloud_model_xsort[0], &point_cloud_model_ysort[1], &point_cloud_model_xsort[2]) != EOF) { //printfで値を確認 printf("%d,%d,%d\n", point_cloud_model_xsort[0], point_cloud_model_ysort[1], point_cloud_model_zsort[2]); } fclose(fp); ``` ### 試したこと 一応、デバックしたり、ネットで同様の質問をみたりして参考にしたのですが 結果はほとんど変わりませんでした。 個人的には、全ての値が異なっているのでバイナリファイルとかテキストファイルの 読み取り方がごちゃごちゃになってしまっているのかなと思ってはいるのですが 解決方法が分からず、質問させていただきました。 ### 補足情報(FW/ツールのバージョンなど) 実際の数値データ(X,Y,Z) ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/e194ad89424c717e0b2dc276e0e56d2b.png) 出力結果(X,Y,Z) ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/11f8b814d55228300fdbe42982bf7b21.png)
回答: そのコードだと`malloc`で確保した配列にデータは思った通りには入らないです。 例えば、以下のようにすれば入ります。(横に長くなると見ずらいので変数x,y,zで受けています) ``` int cnt = 0; int i, x, y, z; while (fscanf_s(fp, "%d,%d,%d", &x, &y, &z) != EOF || cnt < point_number) { printf("%d,%d,%d\n", x, y, z); point_cloud_model_xsort[cnt] = x; point_cloud_model_ysort[cnt] = y; point_cloud_model_zsort[cnt] = z; cnt++; } ```