gpt4 book ai didi

c++ - 不明白为什么我会遇到段错误

转载 作者:行者123 更新时间:2023-11-28 00:07:06 25 4
gpt4 key购买 nike

我在堆栈上使用的内存非常少,而且我没有递归,而且我所有的内存访问都在堆栈上。那么,为什么我会遇到段错误?

#include <iostream>
#include <string>
#include <stdio.h>
using namespace std;

int main(int argc, char *argv[]){
FILE *file = fopen("test.cpp", "r");
struct item{
char *type;
int price;
bool wanted;
};
item items[100]; char *temp;
if (file)
cout << "works up to here" << endl;
fscanf(file,
"%s, %[for sale wanted], %d",
items[0].type,
temp,
&items[0].price);
}

打印出来

works up to here
Segmentation fault (core dumped)

最佳答案

您将指针传递给未初始化的 fscanf。你需要做这样的事情:(如果你使用的是 C)

FILE* file = fopen(...);
char* str = malloc(N);
fscanf(file, "%s", str);
printf("Read %s\n", str);
free(str);
fclose(file);

(如果你实际使用的是 C++)

std::ifstream file(...);
std::string str;
file >> str;
std::cout << "Read " << str << std::endl;

关于c++ - 不明白为什么我会遇到段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35006906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com