C言語でcsvファイルから文字列(char*)を読み込みそれを参照渡ししたいのですがうまくいきません。
コードは下記の通りです。
#include <stdio.h>
#include <stdlib.h>
#pragma warning (disable:4996)
/* ファイルの読み込み */
static short File_Read(unsigned char* data, long* size)
{
FILE *fp; if(!(fp = fopen("name.csv", "rb"))){[pre] perror("name.csvが開けません"); return -1;}
fseek(fp, 0, SEEK_END); // ファイルの最後にポインタを指定する
*size = ftell(fp); // ファイル自体のサイズを調べる
fseek(fp, 0, SEEK_SET); // 読み込むためにファイルの最初にポインタを指定する
data = (unsigned char*)malloc(*size);
fread(&(*data), 1, *size, fp); // 読み込み
fclose(fp); // ファイルを閉じる
return 0;[/pre]
}
/* メイン */
short main(int argv,char* argc[/url])
{
long loop = 0, size = 0; unsigned char* data = NULL; if(File_Read(&(*data), &size))[pre] return -1;for(loop = 0; loop < size; loop++)
printf("%s\n", data);puts("");
free(data);
return 0;[/pre]
}
どのようにしたら、参照渡しができるのでしょうか?
あと、もう一つ気になったのですが、このプログラムの途中に malloc 関数を使ってますが、
使わないとデバッグエラーが起こります。
思いつきで malloc 関数を使ってみたらうまくいった、という状態なので理由がよくわかりません。
なぜ malloc 関数が必要なのでしょうか?
OSは[Windows Vista]で開発環境は[Microsoft Visual C++ 2008 Express Edition]です。
よろしくお願いします。