2013-04-24 3 views
-1

У меня есть код нижеКастинг UINT ** к UINT

unsigned int headerbytes = 0U; 
    headerbytes = (unsigned int*)strtoull(packet_space->header, NULL, 0); 

    packetHeader header = deconstructPacketHeader((&headerbytes)); 

packet_space является символ [], в основном сво массив символов имеет длину 4 байта, что я хочу, чтобы преобразовать в неподписанных Int. deconstructPacketHeader() принимает неподписанный int, но stroutll (With my cast) возвращает двойной указатель. в основном, как получить фактическое значение uint (разыменовать дважды), чтобы я мог передать его deconstructPacketHeader()?

Спасибо!

+0

Если 'packet_space' является' символ [] ', как можно' packet_space-> header' быть действительным термин? – glglgl

+0

BTW: Я не знаю, какой странный 'strtoull()' у вас есть, но [стандартный] (http://linux.die.net/man/3/strtoull) возвращает 'unsigned long long int'. – glglgl

+0

Назначение 'unsigned int *' '' unsigned int' ??? – shinkou

ответ

1

Возможно, вы считаете слишком сложным.

Попробуйте

unsigned long long headerbytes = 0ULL; 
headerbytes = strtoull(packet_space->header, NULL, 0); 
packetHeader header = deconstructPacketHeader(headerbytes);