Определение типов:
typedef int32_t INT32;
typedef uint32_t UINT32;
Имеется функция:
INT32 CopyArrayOfUint32( UINT32* pdwDstArray, UINT32* pdwSrcArray, UINT32 dwAmount )
{
memcpy((void*) pdwDstArray, (void*) pdwSrcArray, dwAmount*sizeof(UINT32));
return (INT32)dwAmount;
}
При ее использовании в другом файле (использование в последней строке):
struct S_BKey
{
UINT32 uFlags;
UINT32* puKey;
UINT32* puSalt;
};
S_BKey* psKey
INT32 auExK[64];
CopyArrayOfUint32( auExK, psKey->puKey, 4 );
Возникает такая ошибка:
error: invalid conversion from ‘INT32* {aka int*}’ to ‘UINT32* {aka unsigned int*}’ [-fpermissive]
case KEY_SIZE_128: CopyArrayOfUint32( auExK, psKey->puKey, 4 );
^
In file included from XXX/XXX.cpp:10:0:
XXXX/XXXX.h:23:7: note: initializing argument 1 of ‘INT32 CopyArrayOfUint32(UINT32*, UINT32*, UINT32)’
INT32 CopyArrayOfUint32( UINT32* pdwDstArray, UINT32* pdwSrcArray, UINT32 dwAmount );
Объясните, пожалуйста, как это можно исправить.
Решение: нужно было привести первый аргумент в функции к UINT32
CopyArrayOfUint32( (UINT32*)auExK, psKey->puKey, 4 );
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости