ее в массив char[], который в стеке
ваш вопрос: как создать строку в стековой памяти, не копируя её в стек? никак
const char str[] = "Stroka";
так мне не надо const, мне надо чтобы потом можно было делать str[3] = 'a';
char str[] = "stroka";
у меня конструктор: struct v { v(char *x); }; внутри другой функции я пишу: v v2("00000000"); и программа на микроконтроллере виснет при попытке записи в х[2] значит "00000000" размещается не в стеке (защищена от записи) как сделать чтобы "00000000" было в стеке ?
Где происходит попытка записи в x? В конструкторе v?
нет! в другом методе класса "v", или в функции - сразу после "v v2("00000000");"
А что происходит в конструкторе структуры v? Вы там что-то со строкой делаете?
нет: v:v(char *x) { size = strlen(x); data = (uint8_t *)x; }
Что такое data?
это *uint8_t
И что по твоему должно происходить тут: v:v(char *x) { size = strlen(x); data = (uint8_t *)x; // <- Тут }
туда записывается адрес начала строки
... какой ужос!
Обсуждают сегодня