容量の大きいCSVファイルの読み込みについて
23メガバイトあるCSVファイルに格納し、datファイルに書き込みを行いたいのですが、実行してみるとセグメンテーション違反が表示され上手くいきません。どなたか具体的に教えてください。 環境はMacOSです。
下にファイルを格納し標準出力するまでのプログラムとCSVファイルの内容を記述します。
//********************************************************************************//
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define D_LENGTH 10000000000000
struct Data{
double voltage;
double pressure;
double trigger;
};
int main(int argc, char *argv[])
{
FILE* fp; // ファイルポインタ用
double ret;
int n, i = 0;
struct Data *dt;
fp = fopen("p37-e1.csv","r");
if (fp == NULL) {
printf( "file open error\n" );
exit(EXIT_FAILURE);
}
dt = (struct Data*)malloc(sizeof(struct Data)*D_LENGTH);
while( ( ret = fscanf( fp, "%[^,],%[^,],%[^,],%lf",dt[i].voltage,dt[i].pressure,dt[i].trigger) ) != EOF ){
i++;
}
printf("\n");
printf("Read File*******************\n");
for (n = 0; n < i; n++)
printf("%lf,%lf,%lf\n",dt[n].voltage,dt[n].pressure,dt[n].trigger);
free(dt);
return(0);
}
//***************************************************************************//
p37-e1.csv
//***************************************************************************//
2.329595,0.001373,-4.861982
2.325628,0.001984,-4.744793
2.320745,0.001678,-4.659953
2.319829,0.002289,-4.707866
2.319219,0.002289,-4.699321
2.317082,0.002594,-4.532387
2.312505,0.001984,-4.575723
.
.
.
.
//*********************************************//
補足
ご指摘ありがとうございます。 早速、問題の部分を変更しましたが、実行してみると"Bus error"と表示され上手くいきません。 度々すみませんが、御指南おねがいします。