C 传递参数不能编辑

C 传递参数不能编辑,c,parameters,C,Parameters,无法更改传递参数的原因。 我有一些功能 void read_errorlog (int success, char *names, int empty) { 这是从另一个调用的,在哪里 const char *names[2] = {"errorlog.txt","errorlog1.txt"} int empty = 0; int counter = 0; int success = 0; 所有变量都已初始化。 在void read\u errorlog内部,既不int s

无法更改传递参数的原因。 我有一些功能

void read_errorlog (int success, char *names, int empty) {
这是从另一个调用的,在哪里

  const char *names[2] = {"errorlog.txt","errorlog1.txt"}
  int empty = 0;
  int counter = 0;
  int success = 0;
所有变量都已初始化。 在
void read\u errorlog
内部,既不
int success
,也不
int empty
更改这些值。 我喜欢
empty=0

我用
read\u errorlog(一,二,三)
调用函数。现在,我必须传递int变量的地址。多谢各位

这是按值调用(您正在执行的操作)和“按引用调用”(您应该执行的操作)的区别

调用函数
read\u errorlog
时,传递的参数实际上是作为参数提供的变量的副本。因此,当您在函数中执行
empty=0
时,您会更改副本的值,但不会更改原始变量的值

对于“通过引用调用”,您需要传递指向
empty
的指针和指向
success
的指针,而不是它们的值。这可以通过以下方式完成:

void read_errorlog (int* success, char *names, int* empty) {
    *empty = 0;
    *success = 1;
}

read_errorlog(&success, names, &empty);

请编写更多accurte示例代码,因为老实说,我不知道问题出在哪里。您应该将按引用调用放在引号中,因为它是模拟的按引用传递,就像在C中只有按值传递一样。@alk-您能提供一些关于“在C中只有按值传递”的详细信息吗?