fscanfで格納された変数がおかしいです。
fscanfで格納された変数がおかしいです。
ダブルポインタで定義した変数にfscanfでファイルから文字列データを読み込んでいるのですが
表示がおかしな事になっています。
読み込んだファイルの内容は、
aiueo
kakikueko
sasisuseso
tatituteto
です。
表示された結果が
kakikueko
sasisuseso
tatituteto
kakisasitatituteto
sasitatituteto
tatituteto
自分では解決しずらいのでここで質問をさせて頂くことになりました。
C/C++で記述してあるのですが、以下にソースを載せておきますのでご指摘ください。
/*
double pointa
*/
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 256
char** size;
// TEST
void test(void)
{
for(int l = 0; l < 3; l++) {
printf("\n%s", &size[l]);
}
}
int main()
{
FILE* fp;
int c = -1;
char moji[MAXSIZE];
if((fp = fopen("test.txt","rb")) == NULL) {
printf("error");
exit(1);
}
while(fscanf(fp,"%s",moji) != EOF) c++;
size = (char**)malloc(sizeof(char) * MAXSIZE * c);
// 初めに戻す
fseek(fp, 0, SEEK_SET);
// 最初の文だけ取り出す
fscanf(fp,"%s",moji);
// 一文を格納する
for(int l = 0; fscanf(fp, "%s", &size[l]) != EOF; l++) {
printf("\n%s", &size[l]);
}
printf("\n");
test();
fclose(fp);
getchar();
free(size);
return 0;
}
test関数内で表示するとおかしな結果がでるのですが何故かわかりません。
よろしくお願いします。