所以我有一个名为 task 的结构,它初始化了一些东西。
typedef struct _task{
char *task_name;
int priority; // higher numbers have higher priority
char date_entered[11];
char date_completed[11]; // not used yet
} task;
我正在尝试编写一个名为 task *makeTask 的函数,它接受 (char *name, char *date, and char *priority) 我需要为新任务分配内存,新任务中的名称,我认为日期。到目前为止,我已经使用这个遇到了分段错误:
task *makeTask(char *name, char *date, char *priority)
{
int i;
int j;
int k;
task *newtask = malloc(sizeof(task));
for(i=0; name[i] != '\0'; i++){
if(name[i] == '\n')
name[i] = '\0';
}
newtask->task_name = malloc(sizeof(char *)*(strlen(name)+1));
strcpy(newtask->task_name, name);
newtask->priority = atoi(priority);
for(j=0; date[j] != '\0'; j++){
if(date[j] == '\n')
date[j] == '\0';
}
return newtask;// FILE THIS IN
}
我想我对字符串以及如何操作它们并没有真正扎实的理解。为什么我的代码在这里给我一个分段错误?是循环还是我为结构分配内存的方式?任何帮助,将不胜感激。