реклама на сайте
подробности

 
 
> ICC6, строки и scanf
lolful
сообщение Jul 29 2011, 11:58
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 106
Регистрация: 27-11-07
Из: Пермь
Пользователь №: 32 732



Как грамотно и безопасно просканировать строчку в ICCAVR6 с помощью scanf? То есть надо защититься от переполнения буфера. Делаю так:
Код
char param[2][20];
sscanf(str, "%19s %19s", param[0], param[1], 20);
Микроконтроллер Mega128 зависает, как и симулятор в AVRStudio 4.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
lolful
сообщение Aug 1 2011, 03:18
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 106
Регистрация: 27-11-07
Из: Пермь
Пользователь №: 32 732



Да, ICC - это Image Craft.
В хелпе действительно нет %s в строке формата. Хм, странно. Но если пишешь
Код
sscanf(str, "%s %s", param[0], param[1]);
то срабатывает нормально, но тогда нужно как-то придумать способ не вылезти за пределы буфера.
А как дела обстоят в 7й и 8й версиях ICCAVR?
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Aug 1 2011, 06:01
Сообщение #3


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(lolful @ Aug 1 2011, 07:18) *
нужно как-то придумать способ не вылезти за пределы буфера.
fgets в помощь...
Цитата
А как дела обстоят в 7й и 8й версиях ICCAVR?
Также хреново. ICCAVR, как и CVAVR - пример самых неудачных компиляторов.
Мой вам дружеский совет: переходите на avr-gcc или iar, пока не поздно.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 06:37
Рейтинг@Mail.ru


Страница сгенерированна за 0.0138 секунд с 7
ELECTRONIX ©2004-2016