ISG2015 0 15 июня, 2015 Опубликовано 15 июня, 2015 (изменено) · Жалоба Есть массив указателей: static char * Commands[12][2] = { {"AT\r","1000"}, {"ATE0\r","1000"}, {"AT+CPIN?\r","1000"}, {"AT+CREG?\r","1000"}, {"AT+CGATT?\r","1000"}, {"AT+CIPSHUT\r","1000"}, {"AT+CIPSTATUS\r","1000"}, {"AT+CIPMUX=0\r","1000"}, {"AT+CSTT=\"internet\"\r,"5000"}, {"AT+CIICR\r","5000"}, {"AT+CIFSR\r","5000"}, {"AT+CIPSTART= \"UDP\" , \"210.286.252.161\", \"14000\"\r","5000"} }; Инициализируется на старте программы. Могу ли я изменить информацию на которую ссылаются указатели на этапе исполнения программы? Не улавливаю где располагает компилятор отдельные строки ,как их там хранит и есть ли возможность что-то менять. Спасибо! Изменено 15 июня, 2015 пользователем ISG2015 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Spider 0 15 июня, 2015 Опубликовано 15 июня, 2015 · Жалоба А такое вообще работает? У меня не работало когда-то давно в GCC. Приходилось объявлять каждую строку отдельно... ЗЫ. А зачем такое расточительство со вторым параметром? Он вроде как всегда цифра, да ещё и кратная 1000. Может лучше выделать под это дело какой-нить (ungisned char) ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ISG2015 0 15 июня, 2015 Опубликовано 15 июня, 2015 · Жалоба Работает. Удобно по очереди вынимать и выполнять. По поводу расточительства верное замечание, изначально хотелось иметь повыше "разрешение" для установки таймаутов выполнения АТ команд. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 15 июня, 2015 Опубликовано 15 июня, 2015 · Жалоба Создаете строковую переменную, с инициализацией. И адрес ее (имя) заносите в массив по нужному индексу. Все показанные выше строки создаются в таблице строк. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ISG2015 0 15 июня, 2015 Опубликовано 15 июня, 2015 · Жалоба Если с инициализацией, то это на этапе компиляции? Если так то это не совсем то что нужно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 15 июня, 2015 Опубликовано 15 июня, 2015 · Жалоба Если с инициализацией, то это на этапе компиляции? Если так то это не совсем то что нужно. Строку (массив символов) ведь можете заполнить, когда захотите. P.S. можете, и не заполняя строку, указатель записать в свой двумерный массив указателей. B) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dr.Alex 0 15 июня, 2015 Опубликовано 15 июня, 2015 · Жалоба Могу ли я изменить информацию на которую ссылаются указатели на этапе исполнения программы? Не улавливаю где располагает компилятор отдельные строки ,как их там хранит и есть ли возможность что-то менять. Спасибо! Ошибся, это именно массив указателей на константные строки, то есть не можете. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 122 15 июня, 2015 Опубликовано 15 июня, 2015 · Жалоба массив указателей на константные строкиГде именно тут указана константность? Я ее не вижу. Значит, ISG2015 может. Вопрос о целесообразности хранения всех этох строк в ОЗУ пока отставим. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
prottoss 0 15 июня, 2015 Опубликовано 15 июня, 2015 · Жалоба Есть массив указателей: ... Могу ли я изменить информацию на которую ссылаются указатели на этапе исполнения программы? Не улавливаю где располагает компилятор отдельные строки ,как их там хранит и есть ли возможность что-то менять. Спасибо! Строки менять можете - ведь у вас массив указателей на эти строки. Сами строки компилятор положит в ОЗУ (даже если укажете, что это const). Длину строки тоже можете найти, т.к. каждая заканчивается нулем. Другое дело - зачем такое расточительство и зачем нужно изменять строки (при чем они все разной длины)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться