Страницы

Поиск по вопросам

четверг, 4 октября 2018 г.

Можно ли передать адрес от числа, не создавая переменную?

Пример: у меня есть ф-ция вывода на экран массива, которая принимает указатель, и длину. Я могу, не создавая отдельной переменную, сразу передать число как аргумент? Может я должен переделать ф-цию print, например первый параметр: const uint8_t* mass или еще как нибудь? Я гарантирую, что ф-ция print будет только читать значения, и не будет их менять!
#include
using namespace std;
void print(uint8_t * mass, uint16_t len) { uint16_t i; for (i = 0; i < len; i++) { cout << mass[i]; } cout << endl; }
int main() { print(&((uint8_t)0),1); return 0; }
Пока у меня не получилось, надеюсь на вашу помощь.


Ответ

Если массив состоит из однобайтовых значений, то можно вместо символа передать строку: https://ideone.com/hP60jc
#include
void print(unsigned char *a, size_t n) { unsigned char *end;
for (end=a+n; a putchar('
'); }
int main() { print((unsigned char*)"Q", 1); return 0; }

Комментариев нет:

Отправить комментарий