Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Добавление "Текст" в char*
|
|||
|---|---|---|---|
|
#18+
Добрый день. Подскажите простой способ добавления строковых данных "Например вот таких" в переменную типа char* Например: Имеется Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. и нужно выполнить AppConf.Paths.Logs = "/var/logs/clgsh.log"; пробовал так: Код: plaintext 1. но пишет ошибку сегментирования. Подскажите как правильно и просто (а не 10 строками) присвоить значение? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 15:52 |
|
||
|
Добавление "Текст" в char*
|
|||
|---|---|---|---|
|
#18+
char* это указатель, а не строка. Про указатели почитай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 16:05 |
|
||
|
Добавление "Текст" в char*
|
|||
|---|---|---|---|
|
#18+
Спасибо. уже читаю. НО вопрос все же открыт. Решение пока не найдено ... (для меня) :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 16:07 |
|
||
|
Добавление "Текст" в char*
|
|||
|---|---|---|---|
|
#18+
Calligraff, >> но пишет ошибку сегментирования. память Пушкин за тебя не выделит, а потом не удалит. >> Подскажите как правильно и просто (а не 10 строками) присвоить значение? бери C++ и std::string, а не char*, тогда будет просто. А на С просто не бывает )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 16:12 |
|
||
|
Добавление "Текст" в char*
|
|||
|---|---|---|---|
|
#18+
Отличное решение... как только теперь в char присвоить значение из std::str ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 17:05 |
|
||
|
Добавление "Текст" в char*
|
|||
|---|---|---|---|
|
#18+
К примеру: Код: plaintext 1. 2. 3. 4. уже не прокатит. AppConf.Paths.Data - std::str Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 17:07 |
|
||
|
Добавление "Текст" в char*
|
|||
|---|---|---|---|
|
#18+
CalligraffОтличное решение... как только теперь в char присвоить значение из std::strа зачем? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 17:12 |
|
||
|
Добавление "Текст" в char*
|
|||
|---|---|---|---|
|
#18+
Calligraffуже не прокатит. Код: plaintext 1. 2. 3. 4. хэлп можно ведь почитать ещё, или книжку там, какую ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 17:15 |
|
||
|
Добавление "Текст" в char*
|
|||
|---|---|---|---|
|
#18+
Решил так (ног правильно ли?): Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 17:16 |
|
||
|
Добавление "Текст" в char*
|
|||
|---|---|---|---|
|
#18+
одновременно почти написали про ".c_str()" :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 17:17 |
|
||
|
Добавление "Текст" в char*
|
|||
|---|---|---|---|
|
#18+
Calligraff, а зачем тебе остальные то char*? делай всё на std::string, что ж ты мучаешься то с ними? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 17:17 |
|
||
|
Добавление "Текст" в char*
|
|||
|---|---|---|---|
|
#18+
egorychCalligraff, а зачем тебе остальные то char*? делай всё на std::string, что ж ты мучаешься то с ними? Тоже уже подумал об этом Спасибо большое за помощь. Вопрос не в эту тему можно? Код: plaintext 1. 2. 3. 4. вот на это: pthread_t thread[num_rows]; в Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. при g++ -ggdb -Wall -Wextra -Werror -ansi -pedantic -o prog `mysql_config --cflags` main.cpp `mysql_config --libs` -pthread ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 17:24 |
|
||
|
Добавление "Текст" в char*
|
|||
|---|---|---|---|
|
#18+
Другими словами - запрещаются массивы переменной длины. ну как бы в данном случае массив конкретный размерностью num_rows ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 17:25 |
|
||
|
Добавление "Текст" в char*
|
|||
|---|---|---|---|
|
#18+
pthread_t* thread = new pthread_t[num_rows]; - сработало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 17:40 |
|
||
|
Добавление "Текст" в char*
|
|||
|---|---|---|---|
|
#18+
CalligraffДругими словами - запрещаются массивы переменной длины. ну как бы в данном случае массив конкретный размерностью num_rowsразмер массива должен быть известен на момент компиляции программы, поэтому, кроме как выделять в куче ( pthread_t* thread = new pthread_t[num_rows]; ) другого способа нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 18:48 |
|
||
|
Добавление "Текст" в char*
|
|||
|---|---|---|---|
|
#18+
Calligraffpthread_t* thread = new pthread_t[num_rows]; - сработало. естественно, т.к. выделение памяти во время выполнения кода происходит. Освободить память не забудь. Так выделяется память во время компиляции: Код: plaintext 1. PS Почитай книжки, хотя бы "для чайников", С/С++ не бейсик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 18:48 |
|
||
|
Добавление "Текст" в char*
|
|||
|---|---|---|---|
|
#18+
egorychразмер массива должен быть известен на момент компиляции программы, поэтому, кроме как выделять в куче ( pthread_t* thread = new pthread_t[num_rows]; ) другого способа нет Странно это слышать от человека, который только что предлагал std::string Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 19:22 |
|
||
|
Добавление "Текст" в char*
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyСтранно это слышать от человека, который только что предлагал std::string принимается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 19:58 |
|
||
|
Добавление "Текст" в char*
|
|||
|---|---|---|---|
|
#18+
Calligraffpthread_t* thread = new pthread_t[num_rows]; - сработало. Не забудь почистить память, иначе наделаешь утечек памяти. Для простоты можно использовать умные указатели. Или вообще не использовать динамическое выделение памяти и довериться стандартным контейнерам. vector тебе уже посоветовали. В С++14 появился dyn_array - должен быть легче, чем вектор, и ближе к "сырому" массиву. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 20:11 |
|
||
|
Добавление "Текст" в char*
|
|||
|---|---|---|---|
|
#18+
ok. Спасибо огромное ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 19:05 |
|
||
|
Добавление "Текст" в char*
|
|||
|---|---|---|---|
|
#18+
CalligraffРешил так (ног правильно ли?): Код: plaintext 1. 2. 3. 4. 5. Нет. Не правильно. Никто не гарантирует, что буфер, ссылку на который вы получаете через c_str(), будет сущестовать (после ';') к моменту его использования (у вас - sprintf(fname, "%s/%s/temperature", PathData, sensor_name); ). В большинстве случаев это будет работать, т.к. скорее всего эти данные будут лежать "неиспорченные", но только до тех пор, пока эта память не будет распределена и повторно использована. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 19:37 |
|
||
|
Добавление "Текст" в char*
|
|||
|---|---|---|---|
|
#18+
egorychCalligraffДругими словами - запрещаются массивы переменной длины. ну как бы в данном случае массив конкретный размерностью num_rowsразмер массива должен быть известен на момент компиляции программы, поэтому, кроме как выделять в куче ( pthread_t* thread = new pthread_t[num_rows]; ) другого способа нет есть, использовать вектора... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 20:45 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=50&tid=2019084]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
14ms |
get forum data: |
2ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
| others: | 16ms |
| total: | 165ms |

| 0 / 0 |
