Добавление "Текст" в char*

Calligraff
Дата: 03.03.2015 15:52:34
Добрый день.

Подскажите простой способ добавления строковых данных "Например вот таких" в переменную типа char*

Например:
Имеется
struct tPaths {
        char*   Logs;
        char*   Conf;
};

struct tAppConf {
        tPaths          Paths;
} AppConf;


и нужно выполнить AppConf.Paths.Logs = "/var/logs/clgsh.log";

пробовал так:
strcpy(AppConf.Paths.Logs, "/var/logs/clgsh.log");


но пишет ошибку сегментирования.

Подскажите как правильно и просто (а не 10 строками) присвоить значение?

Спасибо.
Dima T
Дата: 03.03.2015 16:05:30
char* это указатель, а не строка. Про указатели почитай.
Calligraff
Дата: 03.03.2015 16:07:20
Спасибо. уже читаю.
НО вопрос все же открыт.

Решение пока не найдено ... (для меня) :)
egorych
Дата: 03.03.2015 16:12:20
Calligraff,
>> но пишет ошибку сегментирования.
память Пушкин за тебя не выделит, а потом не удалит.

>> Подскажите как правильно и просто (а не 10 строками) присвоить значение?
бери C++ и std::string, а не char*, тогда будет просто. А на С просто не бывает ))
Calligraff
Дата: 03.03.2015 17:05:51
Отличное решение... как только теперь в char присвоить значение из std::str
Calligraff
Дата: 03.03.2015 17:07:51
К примеру:

char fname[254];
char* sensor_name;
sensor_name = f_row[1];
sprintf(fname, "%s/%s/temperature", AppConf.Paths.Data, sensor_name);

уже не прокатит.

AppConf.Paths.Data - std::str

Спасибо
egorych
Дата: 03.03.2015 17:12:54
Calligraff
Отличное решение... как только теперь в char присвоить значение из std::str
а зачем?
struct tPaths {
    std::string Logs;
    std::string Conf;
};
struct tAppConf {
    tPaths Paths;
};
...
AppConf cfg;
cfg.Paths.Logs = "/var/logs/clgsh.log";
egorych
Дата: 03.03.2015 17:15:49
Calligraff
уже не прокатит.

char fname[254];
char* sensor_name;
sensor_name = f_row[1];
sprintf(fname, "%s/%s/temperature", AppConf.Paths.Data.c_str(), sensor_name);
хэлп можно ведь почитать ещё, или книжку там, какую ;)
Calligraff
Дата: 03.03.2015 17:16:37
Решил так (ног правильно ли?):
char             fname[254];
const char *     PathData = AppConf.Paths.Data.c_str();
char*            sensor_name;
sensor_name      = f_row[1];
sprintf(fname, "%s/%s/temperature", PathData, sensor_name);
Calligraff
Дата: 03.03.2015 17:17:32
одновременно почти написали про ".c_str()" :))