私は以下の問題を説明するための小さなサンプルプログラムを持っています。fscanfが読み込み、一時変数に割り当てる3つの単語(新しい行のそれぞれ)文字列配列に転送されます。しかし、値は配列に転送されていないようです。 また、whileループの2番目のprintfから//コメントを削除すると、segフォルトが発生します。fscanf usage in c - 値が正しく保存されない
私はC言語ではかなり新しく、今ではこれらの機能の使い方を学んでいます!助けを前にありがとう!あなたのコードで
#include <stdio.h>
#include <string.h>
int main (int argc, char* argv[])
{
char* words[15];
char tmp[45];
int i = 0;
FILE* fp = fopen("small", "r");
while (fscanf(fp, "%s", tmp) == 1)
{
printf("%s\n", tmp);
words[i] = tmp;
i++;
//printf("%s ", words[i]);
}
printf("\n");
printf("Words 0 = %s\n", words[0]);
printf("Words 2 = %s\n", words[1]);
printf("Words 3 = %s\n", words[2]);
fclose(fp);
}
出力
pears
apples
zipper
Words 0 = zipper
Words 2 = zipper
Words 3 = zipper
の最後に
return 0
を追加しました。 –ここに2回のダッシュがあります:http://stackoverflow.com/questions/29335910/having-trouble-with-array-being-overwritten http://stackoverflow.com/questions/16268520/c-value-being-changed-overwritten –