Длина строки от адреса переменной (& amp; переменная) — Embedded C

Как я могу найти длину строки от адреса переменной (&переменная)? Ниже приведен код:

SimpleProfile_GetParameter(SIMPLEPROFILE_CHAR7, &newValue); // Hello123
const char echoPrompt[] = "Print From BLE characters:\r\n";
UART_write(uart, echoPrompt, sizeof(echoPrompt)); // Output : Print From BLE characters: | Size : 29
UART_write(uart, &newValue, sizeof(&newValue)); // Output : Hello | Size : 4

Я использую этот код в Code Composer Studio (CCS). Мне нужно напечатать строку в UART, где мне нужно указать количество символов в строке.

Мне нужно, чтобы «Hello123» печатался вместо его печати «Hello»

-1

Решение

&newValue это указатель, так sizeof(&newValue) возвращает размер указателя, а не строку, на которую он указывает. Если предположить, newValue строка с нулевым символом в конце, используйте strlen(),

sizeof работает во время компиляции, он не может получить размер строки, которая создается динамически.

Вы также должны сделать это с echoPrompt, так как sizeof включает завершающий нулевой байт, и вам, вероятно, не нужно это писать.

UART_write(uart, echoPrompt, strlen(echoPrompt));
UART_write(uart, &newValue, strlen(&newValue));
1

Другие решения

Других решений пока нет …