Я не могу напечатать значения символьного массива, даже когда я передать массив с адресом первого элемента:элементов массива указателей недостижимого при передаче функции
vbv_packet = Packet::create(&username[0],
&password[0], Packet::VBV, Packet::DATA,
bytea_from_memptr(& new_mr, car_multirecord::HEADER_SIZE +
(new_mr.get_count() * sizeof(car_compact_record))));
И в функции определения Я пытаюсь напечатать массив значений, как это:
static Packet::ptr create(const char* username, const char* password,RTCINET_COMMANDS cmd, RTCINET_COMMANDS subcmd, Packet::ptr_bytea ba)
// TODO: unsigned short command_seq, data_seq, length
{
//Add user authentication fields, username n password here
std::cout << "********** CREATING PACKET";
std::cout << "sizeof username: " << strlen(username);
std::cout << "sizeof password: " << strlen(password);
for(int i = 0; i < strlen(username); i++)
{
std::cout << *(username + sizeof(char) * i);
}
std::cout << "\n";
for(int j = 0; j < strlen(password); j++)
{
std::cout << password[j];
}
Излишне говорить, что две строки определяются как:
const char username[] = "ARG-CO";
const char password[] = "xxxxx!";
где я делаю неправильно?
Свод указателя принимает элементы, а не байты. – chris
'& username [0]' почти такое же, как 'username' (в данном случае), по какой-либо причине не использовать' std :: string'? –
Что ты имеешь в виду? – Saman