Как изменить стоку в массиве строк?

sally555
sally555 аватар
Offline
Зарегистрирован: 28.05.2015
Объявляю массив строк, вторая строка пустая, в нее надо переодически закидывать данные с двух датчиков температуры во float формате. Как это сделать, помогите?!

char* arreyMnuTestTemp[]={"  TecT TeM-Pbl  ",""};// меню "Тесты"

 

JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

Взять указатель и провести изменения.

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

И получить море проблем, потому что указатель на второй элемент указывает на пустую строку, т.е. на буфер размером в 1 байт.

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

sally555 пишет:

Объявляю массив строк, вторая строка пустая, в нее надо переодически закидывать данные с двух датчиков температуры во float формате. Как это сделать, помогите?!

char* arreyMnuTestTemp[]={"  TecT TeM-Pbl  ",""};// меню "Тесты"

 

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

Поэтому, сделайет Вашу строку не пустой, а зарезервируйте буфер максимального размера - в который уже точно всё, что нужно влезет, и в него уже пишите, что Вам нужно.

JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

kisoft пишет:

И получить море проблем, потому что указатель на второй элемент указывает на пустую строку, т.е. на буфер размером в 1 байт.

Эмм, а проблема то в чем? Как в том анекдоте где мужик картошку по инструкции чистил?

Почистите 2 кило картошки.

Почистил.

Предварительно ее вымыв.

%?:;№%:№;!!!!!

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

String arreyMnuTestTemp[]={"  TecT TeM-Pbl  ",""< class="plain">};// меню "Тесты"

http://playground.arduino.cc/Main/FloatToString

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

JollyBiber пишет:

kisoft пишет:

И получить море проблем, потому что указатель на второй элемент указывает на пустую строку, т.е. на буфер размером в 1 байт.

Эмм, а проблема то в чем? Как в том анекдоте где мужик картошку по инструкции чистил?

Почистите 2 кило картошки.

Почистил.

Предварительно ее вымыв.

%?:;№%:№;!!!!!

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

А по сушеству:

char *buffer = "";

Кому не понятно, запишите в этот буфер какие нибудь данные, скопируйте туда строку подлинней, думаю и без слов будет всё понятно, что так делать нельзя. Для любой строки нужно выделить столько места, сколько нужно, не менее длины этой строки плюс на символ завершения строки.

 

JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

kisoft пишет:

..... думаю и без слов будет всё понятно, что так делать нельзя. ....

Вот и я про тоже. Можно было конечно и готовый скетч написать особенно учитывая что там и писать-то нечего. Тут последнее время и так халявщиков пруд-пруди.