c - 将 char 数组作为参数传递给 fopen

标签 c

我正在尝试打开一个文件(在 ubuntu 上),该文件的路径在变量 path 中。但是当我尝试将路径传递给 fopen() 时,它找不到该文件。 这是一段代码

char path="./client.c";
FILE *fp;
if((fp=fopen(path,"r"))==NULL)
printf("file could not be opened\n");

不过,如果我直接传递路径,它就可以正常工作。以下代码工作正常。

FILE *fp;
if((fp=fopen("./client.c","r"))==NULL)
printf("file could not be opened\n");

我做错了什么?我该如何解决?

最佳答案

您没有在

中声明数组大小
char path="./client.c";

将其更改为:

char path[]="./client.c";

现在您的代码应该可以按预期运行。

如果您对使用指针感兴趣,请使用

const char* path="./client.c";  

直接指向字符串

关于c - 将 char 数组作为参数传递给 fopen,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34244285/

相关文章:

c - 使用 strcpy 从整数生成指针,无需进行强制转换

c - 不兼容的 C 型错误?

c - 初始化一个包含指向结构体指针的结构体

c - c语言中函数的返回数据类型

c++ - 从 C 数组移动到 std::map <int, val> 运算符 `-` 陷阱

c - Apache 过滤器请求主机名比较不起作用

c++ - 使用 Linux C 代码和头文件编译 Windows DLL

c++ - 当我创建一个 int 指针并实例化一个数组时,该数组在内存中发生了什么?

c - 为什么在按下控制键的同时滚动鼠标滚轮时应用程序无故终止?

c - 如何解决此错误 'cannot find -lc' ?