嘿,我试着从int数组引用一个调用:

void function2(int stapel,int colour){
  stapel[1]=stapel[0]
  stapel[0]=colour;
}

void function1(int stapel){
  int colour=2;
  function2(stapel,colour);
}
int main(){
  int *stapel;
  stapel=malloc(sizeof(int)*2);

  function1(stapel);
}

怎么了?:O我现在想在主函数中使用stapel。

最佳答案

您有错误的函数声明,您的函数正在接收指针。
你需要使用

void function2(int *stapel,int colour){...
void function1(int *stapel){...

而不仅仅是int stape。这是完整的代码:
void function2(int *stapel,int colour){
    stapel[1]=stapel[0]
    stapel[0]=colour;
}

void function1(int *stapel){
  int colour=2;
  function2(stapel, colour);
}

int main(){
    int *stapel;

    stapel=malloc(sizeof(int)*2);
    function1(stapel);

    free(stapel); // Also free the memory
}

正如注释中所指出的,还记得在最后释放内存(这里没有实际的区别,因为程序将被终止,但始终是一个好的实践)。

08-07 04:02