Функция печатает адреса каждой ячейки памяти динамического массива. Правильно ли это?Как распечатать адреса памяти C-String?
int main()
{
char str[] = "This is a test";
printAddresses(str, strlen(str));
}
template <class type>
void printAddresses(type *item, int n)
{
cout << "Printing Addresses..." << endl;
for (int i = 0; i < n; i++)
{
cout << "Index " << i << ": " << ((&item) + i) << endl;
}
}
Я также слышал, что я должен использовать:
cout << "Index " << i << ": " << (void*) &item[i] << endl;
, но это дает мне другой адрес памяти. Я не уверен, какой из них прав.
Cast к 'void *' для печати адреса. –
Перерыв с отладчиком и посмотреть. – zmbq
'cout <<" Index "<< i <<": "<< (void *) ((& item [i])) << endl;' –