我正在使用visual stduio 2008 c++。我正在编写 Windows 窗体应用程序。我在 Form1.h 的顶部声明一个 FILE* 数组作为全局值
const int k = 1; //i need to change k to 2 sometimes.
FILE* myFiles[k];
在 From1 的构造函数中,我使用一个 for 循环来打开我的文件。
for(int i = 0; i < k; ++i)
{
char filename[100] = "";
sprintf(filename,"Record/record_%ld_%d.txt",g_recordName,i);
myFiles[i] = fopen(filename,"w");
}
我为这个表格设置了一个计时器,每次打勾它都会把一些东西打印到myFiles中。到目前为止还不错,但是如果我放一些类似的东西
fprintf(myFiles[0],"%d",1234);
在for循环之后进入构造函数。这条线可以正常工作,但是如果我要在计时器的滴答事件中 fprintf 任何东西,我发现 myFiles[0] 已经设置为 NULL!
此外,如果我fprintf(myFiles[0],"something")
在构造函数中,FILE 指针在计时器的滴答事件中仍然不会为空。
为什么会这样?!有谁知道为什么?