Кроме того, ты используешь функцию itoa, но это нестандартная функция, в стандартную библиотеку C она не входит.
при этом нет ни одного файла *.cpp, я очень хотел бы узнать, как оно у тебя собирается
& 'c:\Users\Alex\.vscode\extensions\ms-vscode.cpptools-1.18.5-win32-x64\debugAdapters\bin\WindowsDebugLauncher.exe' '--stdin=Microsoft-MIEngine-In-jcy0pkn1.aoz' '--stdout=Microsoft-MIEngine-Out-hsfqfz5g.clb' '--stderr=Microsoft-MIEngine-Error-mnxcifzi.5or' '--pid=Microsoft-MIEngine-Pid-mxlmcoo1.oxa' '--dbgExe=E:\msys64\ucrt64\bin\gdb.exe' '--interpreter=mi'
key_cache[i].strong_value[round * 2] = (char*) calloc(128, 1);
memcpy(key_cache[i].strong_value[round * 2], value[0], strlen(value[1]));
key_cache[i].strong_value[round * 2 + 1] = (char*) malloc(strlen(value[1])+1);
strcpy(key_cache[i].strong_value[round * 2 + 1], value[1]);
char* output = (char*) malloc(33);
prepareKeys()
на следующий код:for (int i = 0; i < 7; i++) {
keys[i] = (char*) malloc(128);
for (int j = 0; j < 128; j++) keys[i][j] = 48;
}
ck_str
по ходу алгоритма постоянно обновляется (там идёт присвоение нового адреса указателю), а original_key
- нет. Так что это точно не ошибка. Хотя может быть, реализовано коряво.
gcc main.c acp.c md5.c -o main
Например так. Да, ламерский подход, но в учебнике для начинающих по C++ рекомендуют именно так и компилировать решения, только через g++. Если бы в коде было что-то совсем плохое, код бы вообще не скомпилировался - а тут он компилируется. И в режиме отладки даже идеально отрабатывает.