這裏是我在Visual Studio 2008中編寫的代碼。我使用該數據獲取數據在接收數組&中,我正在準備對它做出響應。但是我得到錯誤「server.exe中的0x0f6cf9c4未處理的異常:0xC0000005:訪問衝突讀取位置0x00000001。」代碼運行時每次都在「strcat」函數中。server.exe中的0x0f6cf9c4未處理的異常:0xC0000005:訪問衝突讀取位置0x00000001
byte Receive[50];
unsigned char result[50];
int index = 0;
char *type;
char *s = "ff ff ff 1d 00 01 01 0b 00 01";
char *s1 = "03 00 98 ac 06 36 6f 92";
int i;
if (Receive[i] == 0x18)
{
if ((Receive[i+1] == 0x20) || (Receive[i+1] == 0x21) || (Receive[i+1] == 0x22) || (Receive[i+1] == 0x23) || (Receive[i+1] == 0x24) || (Receive[i+1] == 0x25))
{
if (Receive[i+2] == 0x00)
{
result[index] = Receive[i-4];`enter code here`
result[index+1] = Receive[i-3];
index = index+2;
type = "report";
}
}
}
}
index = 0;
if (type == "report")
{
strcat(s, result[index]);
strcat(s, result[index+1]);
strcat(s, s1);
strcat(s, array1[j]);
strcat(s, array1[j+1]);
strcat(s, array1[j+2]);
strcat(s, array1[j+3]);
strcat(s, array1[j+4]);
與您的問題無關,但不能使用'=='比較字符串。用'=='比較*指針*,而不是指向它們,因此它永遠不會是真的。使用['strcmp'](http://en.cppreference.com/w/c/string/byte/strcmp)比較字符串。 –
至於你的問題,首先在調試器中運行你的程序來捕捉「實際中」的崩潰。通過這種方式,您可以找到代碼中發生的位置,並檢查變量及其值,以確保它們看起來很好。至少請編輯您的問題,告訴我們發生崩潰的位置以及相關變量的值。 –