在 C 中创建新文件时出现分段错误

德拉戈斯

我很困惑为什么这段代码会返回分段错误。基本上,我尝试使用fopen()创建一个新的文本文件fprintf()

    void my_function() {
        FILE *g;
        char s1[30];
        printf("\nNew file (text): ");
        scanf("%s",&s1);            //gets(s1);
        g = fopen(s1,"w");
        fprintf(g,"something");
        fclose(g);
}

我尝试使用以下方法检查 fopen 的有效性:

if (g == NULL) {
       perror("fopen()");
       exit(1);
    }

返回fopen(): Bad address,所以可能这就是问题所在。知道是什么原因造成的以及如何解决吗?

凤凰蓝

问题出在scanf("%s", &s1)而是写,scanf("%s", s1);因为s1已经是一个指针。

您所做的是将指针传递给指针。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在C中传递char **时出现分段错误

在C中访问共享内存时出现分段错误

在TensorFlow中访问张量数据时出现分段错误(C ++)

C中的open()函数使用错误的权限创建新文件?

C ++中调用fortran子例程时出现分段错误

在c ++中创建两个不同的二叉树时出现分段错误

即使我尝试在C中创建文件也找不到文件时出现分段错误

从C ++中的文件加载数据时出现分段错误

扫描文件并计算c中的值时出现分段错误

C:递归打开子目录并创建新文件

无法从C中的用户空间在/ proc文件系统中创建新文件。甚至可能吗?

写入文件时出现C分段错误

从文件读取大数组时出现分段错误。C ++ / gcc

尝试克隆函数时出现分段错误(在C中)

更新文件中的记录(C ++)

在C中实现链表时出现分段错误

c-打开文件时出现分段错误

使用链表中的指针结构时出现C分段错误

C ++-修改文件而不创建新文件

新文件添加C#时的目录事件

复制,创建和更新文件,将原始文件保留在C#中

尝试在C中获取文件扩展名时出现分段错误错误

在 C、Linux 中递归列出目录和文件时出现分段错误(核心转储)

创建树时出现分段错误 (C)

在c中读取文件时出现分段错误

在 C++ 中实现 Trie 时出现分段错误

创建一个新文件以在 C 中写入并将其初始化为空?

file.open 不在 C++ 中创建新文件

在 C 中的结构上使用 qsort 时出现分段错误