为什么我的数据集是空的错误C4700:未初始化的局部变量“0”;坐标;使用

为什么我的数据集是空的错误C4700:未初始化的局部变量“0”;坐标;使用,c,C,txt文件中的数据只是两列数字,没有标签(x-y坐标) \define\u CRT\u SECURE\u NO\u警告 #包括 #包括 #包括 typedef结构数据集{ 浮动x; 浮动y; }数据集; int main(){ 数据集*坐标; 文件*输入; 输入=fopen(“data.txt”,“r”); int i=0; 而(fscanf(输入,“%e%e”,&坐标[i].x,&坐标[i].y)==2) i++; fclose(输入); 返回0; } 感谢您的帮助。dataset*坐标是未

txt文件中的数据只是两列数字,没有标签(x-y坐标)

\define\u CRT\u SECURE\u NO\u警告
#包括
#包括
#包括
typedef结构数据集{
浮动x;
浮动y;
}数据集;
int main(){
数据集*坐标;
文件*输入;
输入=fopen(“data.txt”,“r”);
int i=0;
而(fscanf(输入,“%e%e”,&坐标[i].x,&坐标[i].y)==2)
i++;
fclose(输入);
返回0;
}

感谢您的帮助。

dataset*坐标是未初始化的指针。如果您使用的是
c
语言,您需要在尝试将数据放入动态数组之前使用malloc预先分配动态数组。它不会随着您添加项目而增长,因此请确保在开始时分配了足够的资源,并检查大小以防止阵列溢出。这可能有助于:
#define _CRT_SECURE_NO_WARNINGS

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

typedef struct dataset{
    float x;
    float y;
} dataset;

int main(){

    dataset* coordinates;
    FILE* input;

    input = fopen("data.txt", "r");
    int i = 0;

    while (fscanf(input, "%e %e", &coordinates[i].x, &coordinates[i].y) == 2)
        i++;
    fclose(input);

    return 0;
}