2013-12-16 144 views
1

我一直收到以下錯誤代碼段。我不知道這意味着什麼。有人可以告訴我爲什麼我繼續得到它嗎?引發異常:訪問衝突寫入位置0x00000000

ConsoleApplication8.exe中的0x5A0DB49C(msvcr110d.dll)未處理的異常:0xC0000005:訪問衝突寫入位置0x00000000。

#include <stdio.h> 
#include <string.h> 

int main (void) 
{ 
    char str[]="asd asd 3, 5; 12, 525; 123, 45235;"; 
    int a[100]={0}; 
    int b[100]={0}; 
    int i=0; 
    sscanf (str, "asd asd %d, %d; %d, %d; %d, %d;", a[0], b[0], a[1], b[1], a[2], b[2]); 

    for (i=0; i<3; i++){ 

     printf ("%d %d\n", a[i], b[i]); 

    } 
    return 0; 

} 
+1

什麼是'線'? – haccks

+0

對不起。編輯.. – user3108849

+1

那麼'str'是什麼? –

回答

2

語法sscanf

sscanf(characterArray, "Conversion specifier", address of variables); 

建議,你需要&這裏sscanf論據int類型。

sscanf (str, "asd asd %d, %d; %d, %d; %d, %d;", a[0], b[0], &a[1], &b[1], &a[2], &b[2]); 
+0

謝謝。我真的沒有想到這一點。我試圖解決這個問題至少一個小時。 – user3108849

+0

歡迎您。我很高興它幫助你:) – haccks

0

嘗試:

sscanf (str, "asd asd %d, %d; %d, %d; %d, %d;", &a[0], &b[0], &a[1], &b[1], &a[2], &b[2]); 

代替sscanf叫你已經有了。否則,你可能會得到一個空指針異常(int數組值爲0)。

+0

非常感謝。它解決了我的問題。 – user3108849

相關問題