在C函数中更改文件指针指向的值
是否可以通过引用传递来更改C中函数内的文件指针指向的值 这里有一个例子来说明我要做的事情,我可以修改整数,但不能修改文件指针,有什么想法吗在C函数中更改文件指针指向的值,c,pointers,C,Pointers,是否可以通过引用传递来更改C中函数内的文件指针指向的值 这里有一个例子来说明我要做的事情,我可以修改整数,但不能修改文件指针,有什么想法吗 int main (void) { FILE* stream; int a = 1; configure_stream(rand() % 100, &a, &stream); return 0; } void configure_stream(int value, int* modifyMe, FILE* s
int main (void)
{
FILE* stream;
int a = 1;
configure_stream(rand() % 100, &a, &stream);
return 0;
}
void configure_stream(int value, int* modifyMe, FILE* stream)
{
*modifyMe = rand() % 100;
if (value > 50)
{
*stream = stderr;
}
else
{
*stream = stdout;
}
}
试一试
您尝试的内容不正确:
void configure_stream(int value, int* modifyMe, FILE* stream)
*stream = stderr; /* Assign FILE * to FILE. */
编辑
您应该将其命名为:configure_-stream(…,&stream)代码>试试看
您尝试的内容不正确:
void configure_stream(int value, int* modifyMe, FILE* stream)
*stream = stderr; /* Assign FILE * to FILE. */
编辑
您应该将其命名为:configure_-stream(…,&stream)代码>您正在向configure\u stream传递指向文件指针的指针。因此,参数应该声明为FILE**您正在向configure\u stream传递指向文件指针的指针。因此,应该将参数声明为FILE**我想您应该如下声明您的configure\u流
void configure_stream(int value, int* modifyMe, FILE** stream)
{
*modifyMe = rand() % 100;
if (value > 50)
{
*stream = stderr;
}
else
{
*stream = stdout;
}
}
和它一起使用
配置_流(rand()%100、&a和&stream)
这将获取指向文件指针的指针。使用指向指针的指针,您可以修改文件指针,而不必在内存的大丛林中丢失它我认为您需要如下声明您的configure\u流
void configure_stream(int value, int* modifyMe, FILE** stream)
{
*modifyMe = rand() % 100;
if (value > 50)
{
*stream = stderr;
}
else
{
*stream = stdout;
}
}
和它一起使用
配置_流(rand()%100、&a和&stream)
这将获取指向文件指针的指针。使用指向指针的指针,您可以修改文件指针,而不会在内存的大丛林中丢失它谢谢,我现在明白了,我需要取消对文件指针的引用,然后为指针赋值。这段代码似乎可以工作。谢谢,我现在明白了,我需要取消引用一个文件指针,指针然后给它赋值。这个代码似乎有效。