小编ale*_*asa的帖子

C - fopen()的相对路径

这是我的问题:我在字符串矩阵中保存了一些相对路径.根据用户选择,我必须打开某个文件.问题是,当我使用fopen函数时,文件指针不指向任何东西.以下是代码示例:

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

#define MAX_PATH 100

///Global matrix of strings, containing the paths used in fopen() function
char paths[MAX_PATH][3] = {{"c:\\Users\\ThisPc\\Desktop\\file1.txt"},
                           {"c:\\Users\\ThisPc\\Desktop\\file2.txt"},
                           {"c:\\Users\\ThisPc\\Desktop\\file3.txt"}};

int main(){
    ///Declaring and initializing the 3 file pointers to NULL
    FILE *filepntr1 = NULL;
    FILE *filepntr2 = NULL;
    FILE *filepntr3 = NULL;

    ///Opening the 3 files with the correct arrays
    filepntr1 = fopen(paths[1], "w");
    filepntr2 = fopen(paths[2], "w");
    filepntr3 = fopen(paths[3], "w");

    ///Typing something on the files opened, just to check if the files …
Run Code Online (Sandbox Code Playgroud)

c arrays io fopen file

1
推荐指数
1
解决办法
535
查看次数

没有垃圾收集器的编程语言:垃圾去哪儿了?

我目前正在研究算法和高级数据结构:因为我熟悉 C 并且它确实在实现和指针使用之上提供了很好的控制水平,我正在使用它来测试到目前为止对主题的理解。

在测试需要动态事物(如列表和树)的结构时,我问自己:由于 C 没有垃圾收集器,如果我不调用 free() 函数来释放动态分配的所有变量,那在哪里记忆去?

其他相关问题包括(抱歉误用了一些术语,我在低级抽象方面没有太多经验):

  • 编译器是使用实际的硬盘驱动器资源(例如驱动器的 x 记录中的变量)还是“实例化”一部分虚拟内存来编译和运行我的程序?

  • 我的硬盘中是否有很多列表、树和图形,所有这些都涉及从 0 到 100 的计数或字符串“abcd”和“qwerty”?

  • 操作系统是否将所述数据识别为垃圾,或者在我格式化驱动器之前我一直被这些垃圾困住?

我真的很好奇,我从来没有低于 C 的抽象级别。

c garbage-collection dynamic-memory-allocation

1
推荐指数
1
解决办法
2950
查看次数