Допустим, у меня есть этот student struct
определено:Использование strncpy на структуры
struct student {
char *name;
};
typedef struct student Student
Теперь у меня есть следующая функция:
void add_student(const char *student_name) {
// create new student
Student *new_s;
new_s = malloc(sizeof(Student));
strncpy(new_s->name, student_name, sizeof(new_s->name) - 1)
}
Я хочу, чтобы добавить student_name на имя нового студента структуры , Однако, поскольку const char
и char
разные, я должен использовать strncpy
.
Я пробовал это таким образом, однако я получаю ошибку сегментации, что не так?
Вместо 'strncpy' вы можете взглянуть на' strdup'. Звучит очень близко к тому, что вы пытаетесь архивировать здесь. –
** НИКОГДА не используйте 'strncpy' **, это никогда не будет подходящим инструментом для работы. – chqrlie