Как я могу найти длину строки от адреса переменной (&переменная)? Ниже приведен код:
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»
&newValue
это указатель, так sizeof(&newValue)
возвращает размер указателя, а не строку, на которую он указывает. Если предположить, newValue
строка с нулевым символом в конце, используйте strlen()
,
sizeof
работает во время компиляции, он не может получить размер строки, которая создается динамически.
Вы также должны сделать это с echoPrompt
, так как sizeof
включает завершающий нулевой байт, и вам, вероятно, не нужно это писать.
UART_write(uart, echoPrompt, strlen(echoPrompt));
UART_write(uart, &newValue, strlen(&newValue));
Других решений пока нет …