这是我的问题:我在字符串矩阵中保存了一些相对路径.根据用户选择,我必须打开某个文件.问题是,当我使用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 并且它确实在实现和指针使用之上提供了很好的控制水平,我正在使用它来测试到目前为止对主题的理解。
在测试需要动态事物(如列表和树)的结构时,我问自己:由于 C 没有垃圾收集器,如果我不调用 free() 函数来释放动态分配的所有变量,那在哪里记忆去?
其他相关问题包括(抱歉误用了一些术语,我在低级抽象方面没有太多经验):
编译器是使用实际的硬盘驱动器资源(例如驱动器的 x 记录中的变量)还是“实例化”一部分虚拟内存来编译和运行我的程序?
我的硬盘中是否有很多列表、树和图形,所有这些都涉及从 0 到 100 的计数或字符串“abcd”和“qwerty”?
操作系统是否将所述数据识别为垃圾,或者在我格式化驱动器之前我一直被这些垃圾困住?
我真的很好奇,我从来没有低于 C 的抽象级别。