строка — проблема с получением списка символов в c ++, неправильное распределение памяти?

это моя структура

struct list{
char c;
struct list * next;
};

и я должен положить в этот список последовательность символов, но при попытке получить все ошибки сегментации времени

struct list * insert_list(){
//function for add a new string in the list
struct list * tmp;
string car;
int i=0, len;
cin >> car;
len=car.size();
for (i=0; i<len; i++){
tmp=new list;
tmp->c=car[i];
tmp->next=NULL;
tmp=tmp->next;
}
return tmp;
}

struct list * head(struct list *top){
//this function adds the new string on ***TOP*** of the list
struct list *tmp=NULL;
tmp=insert_list();
tmp->next=top;
return tmp;
}

struct list * tail(struct list * top){
//this function adds the new string in the ***END*** of the list
if (top==NULL){
top=insert_list();
}
else{
top->next=tail();
}
return top;
}

проблема, я думаю, в функции insert_list, я пытался также с

while(tmp->c!='\n'){
tmp=new list;
cin >> tmp->c;   //also with cin.get
tmp=tmp->next;
tmp->next=NULL;
}

но я получаю все время одну и ту же ошибку.
Как я могу это исправить?

0

Решение

insert_list

Всегда будет возвращать ноль, поэтому любые вызовы head будет ошибка
Как и любые другие вызовы insert_list, которые пытаются использовать результат.

1

Другие решения


По вопросам рекламы [email protected]