void readit(FILE* filePtr, int* num1, int* num2, char** strings, int lines)
{
int t;
char line[50];
for (t = 0; t < lines; t++){
fgets(line, 50, filePtr);
*(strings + t) = strtok(line, " "));
*(num2 + t) = atoi(strtok(NULL, " "));
*(num2 + t) = atoi(strtok(NULL, " "));
}
このコードでは、*strings 部分が意図したとおりに機能していません。コードを通過するたびに、文字列配列全体が上書きされます。fgets は正しいデータを読み込んでおり、最初のトークンの値を出力すると、すべてのループが期待どおりになります。ループの外側 (または i print (i - 1) の場合は内側) すべての配列 *str + 1、*str + 2 など。最後のパススルーの値が含まれます。
例えば。
*(strings + 0) = "Hi";
printf("%s", *(strings + 0)); //Will print hi
//next iteration
*(strings + 1) = "You";
printf("%s", *(strings + 1)); // will print you
printf("%s", *(strings + 0)); // will print you as well