2013-09-21 116 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);