Я получаю ошибку сегментации (ядро сброшено) при запуске программы - PullRequest
0 голосов
/ 03 января 2019

pos.dat файл содержит:

1 2 4
1 2 3
1 2 1
1 2 3

Я получаю segmentation fault при запуске программы.

#include <stdio.h>
#include <stdlib.h>

int main() {
    FILE  *fp;
    int line = 4, i = 1;
    float *x, *y, *z;
    fp = fopen("pos.dat", "r");
    while (i <= line) {
        fscanf(fp, "%f%f%f", &*x, &*y, &*z);
        printf(fp, "%f\t%f\t%f\n", *x, *y, *z);
        i = i + 1;
    }
    return 0;
}

1 Ответ

0 голосов
/ 03 января 2019

float *x; объявляет указатель float.Когда вы затем попытаетесь использовать его, scanf() попытается разыменовать указатель, не инициализировав его сначала с действительным адресом.

Вместо этого вы хотите объявить float s, а не float указатели:

float x, y, z;
...
fscanf(fp,"%f%f%f", &x, &y, &z);
...
printf("%f\t%f\t%f\n", x, y, z);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...