2013-09-21 30 views
0

当我运行这段代码:进程终止状态-1073741819在C

#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 bvery多

+0

这是一个访问冲突,一个标准的故障模式的C代码。您的scanf()函数调用已损坏,请使用&arrNum [i]。鉴于可怕的缩进和明显缺乏访问调试器,我会说你应该继续寻找一个更有用的IDE。 –

回答

0

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

修复:

scanf("%d", &arrNum[i]); 
      ^use & 
0

scanf的要求的第二个参数是一个地址

取代 “的scanf(” %d “arrNum [I]);”与 scanf(“%d”,& arrNum [i]);或scanf(“%d”,arrnum + i);