我必須在最後一行的錯誤,在nullString,功能設置的所有字符串「\ 0」用一個簡單的()Ç - 寫訪問衝突
void function (unsigned char inputArray[], size_t inputSize)
{
size_t cellSize;
if (inputSize <= 256)
cellSize = 1;
else
cellSize = ceil(inputSize/2/256) + 1;
// Sub Box
unsigned char subBox[255];
for (size_t line = 0; line < 255; line++)
subBox[line] = 0;
generate_SubBox(subBox, key);
// Sub Box
// Sub Box reverse
unsigned char subBox_Inverse[255];
for (size_t line = 0; line < 255; line++)
subBox_Inverse[line] = 0;
generate_SubBox_Inverse(subBox_Inverse, subBox, key);
// Sub Box reverse
unsigned char* inputArray2 = NULL;
inputArray2 = malloc(sizeof(unsigned char)* inputSize/2);
verifyMalloc(inputArray2);
nullString(inputArray2, inputSize/2);
unsigned char string_temp[3] = { 0 };
size_t w = 0;
for (size_t i = 0; i < inputSize/2; i++)
{
string_temp[0] = inputArray[w];
string_temp[1] = inputArray[w + 1];
inputArray2[i] = strtoll(string_temp, NULL, 16);
w += 2;
}
}
我試圖中和每行線所有的指令都在nullString()之前通過註釋它們,但它不會改變任何東西。
如果我中和nullString,在錯誤出現之後,在
inputArray2[i] = strtoll(...)
希望你已經有了答案:)
提前感謝!
編輯: 這裏是nullString:
void nullString(unsigned char input[], size_t length)
{
for (size_t x = 0; x < length; x++)
input[x] = '\0';
}
我nullString評論之前的所有指令,錯誤仍然存在。
我也驗證了變數,他們都看起來不錯
編輯2: verifyMalloc:
void verifyMalloc(int* pointer)
{
if (pointer == NULL)
{
perror("Erreur");
Sleep(15000);
exit(0);
}
}
可能你的問題是在'nullString()'或其他地方。你介意顯示這個功能嗎? – harper
隔離失敗的想法:1)通過註釋失活所有與'inputArray2'不相關的代碼。如果失敗消失,請查找最後的更改。 2)使用調試器並在發生異常的位置之前驗證變量。 – harper
如何發佈nullString?我必須編輯我的第一篇文章嗎? –