在c数组中找到中间点

use*_*115 0 c arrays

我正在学习C编程.我想找到一个数组的中间点而不知道它的长度.如果数组的长度是6,中间点必须是第4,但我有一个错误,我不知道它是什么.这是我的代码:

    int *a =(int *) malloc(sizeof(int) * n); 

    int i;
    for( i = 0; i < sizeof(a); i++)
        scanf("%d",&a[i]);
Run Code Online (Sandbox Code Playgroud)

任何人都可以提供帮助,谢谢.

Fer*_*eak 10

scanf 正在读入一个地址,所以:

scanf("%d",a[i])
Run Code Online (Sandbox Code Playgroud)

应该是:

scanf("%d", &a[i])
Run Code Online (Sandbox Code Playgroud)

free当你完成时不要忘记记忆.(对于像这样的微小应用程序并不重要,但是当你从学习阶段走出并进入现实生活中编程时,如果你习惯了这是一个好习惯)

而且:sizeof(a)是指针的大小,而不是指针指向的内存大小(正如在另一个答案中正确指出的那样).