Моя программа продолжает производить ошибку сегментации. я упростил свой код на следующее:C++ files array messes up my variable
#include <stdio.h>
void open_file(FILE** file)
{
*file = fopen("test" , "wb");
return;
}
int main()
{
int Tracks = 1;
FILE* Files;
int i = 1;
Files = new FILE[Tracks + 1];
printf("i = %d\n", i); //i = 1
open_file(&Files + i);
printf("i = %d\n", i); /i = 0
fclose(*(&Files + i)); //Segmentation fault
return 0;
}
я должен делать некоторые действительно глупое указатель ошибки, но мне мои операции указатель арифметика выглядеть хорошо ... Проблема заключается в том, что по какой-то причине волшебной , переменная i меняет свое значение на 0. Может ли кто-нибудь объяснить мне, почему?
Заранее благодарен!
Вы должны удалить 'FILE * Files'. И отредактируйте 'FILE ** Files = new ...' – ForceBru
Выглядит больше как C, чем C++ (кроме 'new'). – crashmstr
@crashmstr, в чем ваш смысл? Это все еще C++. – dfeuer