1

当我运行这段代码时:

#include <stdio.h>
#include <stdlib.h>

int main ( int argc, char *argv[] )
{

int i=0;
int *arrNum = (int *) malloc(sizeof(int) * 5);
if(arrNum == NULL)
              {
            puts("Failed to allocate memory !!!");
            exit(1);
              }
        while(i<5)
        {
        printf("Number %d: ",i+1);
        scanf("%d", arrNum[i]);
        i++;
        }
        for(i=0;i<5;i++)
            {
            if(arrNum[i]%3==0)
                printf("%d\n", arrNum[i]);
            }
free(arrNum);
return 0;
}

我收到错误:进程以状态-1073741819 终止,这是什么原因,我应该如何更正我的代码才能工作?在 C.Thanks 非常感谢

4

2 回答 2

0

scanf 要求第二个参数是地址

替换 "scanf("%d", arrNum[i]);" 与 scanf("%d", &arrNum[i]); 或 scanf("%d", arrnum+i);

于 2013-09-21T14:40:46.727 回答
0

在您scanf中,您没有提供数组各个元素的地址

使固定 :

 scanf("%d", &arrNum[i]);
             ^ use &
于 2013-09-21T14:42:24.910 回答