Предполагая, что содержимое address
на самом деле является просто указателем : Вы, вероятно, можете сделать:
strcmp ((char*)address, (const char*)some_char_buffer);
Но если это так, было бы гораздо лучше вместо этого изменить адрес на char*
везде:
char* address;
В зависимости от вашей кодовой базы это может быть большее изменение. Знаете ли вы, почему это был unsigned long long
, а не указатель?
В качестве альтернативы, если вы хотите, чтобы байты содержимого address
обрабатывались как строка : (а не содержимое, на которое может указывать address
), выполните:
strcmp ((char*)&address, (const char*)some_char_buffer); // note the &
Обратите внимание, что в этом случае вам потребуется последний байт в длинной, равный '\0'
. Если это то, что вы хотите сделать, я бы рекомендовал вместо этого использовать strncmp()
, ограниченный размером длинного длинного:
strncmp((char*)&address, (const char*)some_char_buffer,
sizeof(unsigned long long));