C代码的基本错误

Elv*_*iii 0 c

我正在为考试做正确的学习,我遇到了这个问题:

这段代码中的关键错误是什么?

int *numbers(int a, int b)
  {
     int array[2];
     array[0] = a * b;
     array[1] = a + b;
     return array;
  }
Run Code Online (Sandbox Code Playgroud)

现在,我没有太多的C经验,但我根本没有看到这个代码中的严重错误.也许我是一个白痴,只是忽略了一些明显的东西.我唯一能看到的是没有使用malloc分配内存,但我没有看到这是一个大问题.

任何帮助表示赞赏!

Phi*_*rry 5

这里最基本的问题是,一旦返回,数组就不再存在numbers().返回的指针指向可能会在短时间内被覆盖的空间.