struct {
char* name;
} S;
S *init(char* name) {
S *s = (S *)malloc(sizeof(S));
s->name = &name[0];
return s;
}
int main(void) {
char *name = "test";
S *s = init(name);
printf("NAME: %s\n", s->name);
}
так норм?
меня в частности интересует строка
s->name = &name[0];
копировать не забывай
что куда копировать?
т.к. вы в C++ чате, на всякий случай напомню, что malloc - это незаконно
так, ну вообще на самом деле тут совсем не правильно
так я и хочу узнать как правильно
В том виде, в каком это в примере же, нет?
ты выделил память под структуру и внутри структуры дал полю адрес твоей строки как только твоя строка помрет - получишь segfault или ub
а ну да оно работает видимо потому что строка живет в мэйне
второй вопрос, тебе действительно это в Сях надо сделать?
а какая цель?
расширение сознания
ну я в плане - ты это как то использовать будешь или просто для галочки?
ну я на расте работаю вот решил что мне знание си поможет
Обсуждают сегодня