我正在运行一个程序,虽然代码运行良好,但 Valgrind 显示“大小为 1 的无效写入”并且地址 0x1ffefffa00 在线程 1 的堆栈上。使用程序中的另一个函数strchr
和都发生了这种情况。strchrn
我尝试使用 index 来定位逗号以及strchr
我的strchr
函数,但都在 Valgrind 中不断返回相同的警告
typedef struct data_s Data;
struct data_s {
float temperature;
int year;
int month;
int day;
};
char* getData(FILE* filename) {
char buffer[INPUT_LINE_MAX];
char* dataLine = fgets(buffer, INPUT_LINE_MAX, filename);
return dataLine;
}
Data* buildData(FILE* filename) {
char* readLine = getData(filename);
Data* new = malloc(sizeof(Data) + 1);
char* comma1 = strchr(readLine, ',');
下面的其余代码comma1
无关紧要