所以我有一個名爲task的結構體,它初始化了一些東西。在結構中操作字符串C
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;
我試圖寫一個函數命名的任務* makeTask是發生在(字符*名稱,字符*日期和char *優先級) 我需要爲新的任務分配內存,內部名稱新的任務,我想日期。到目前爲止,我已經到了使用這種分段錯誤:
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
}
我覺得我沒有琴絃的真正堅實的理解,以及如何操縱它們。爲什麼我的代碼在這裏給我一個分段錯誤?它是循環還是我爲結構分配內存的方式?任何幫助,將不勝感激。
您需要提出具體問題。 – djechlin 2013-04-22 16:53:57
哪條線出現分段故障? – 2013-04-22 16:54:58
我認爲分段錯誤發生在我分配內存或循環的地方。我不確定。 – Vince 2013-04-22 17:42:22