У меня есть числа в связанном списке, который я должен преобразовать в char* и вернуть.
Вот функция, в которой, вероятно, существует проблема.
char* int_str(struct Node** head,char* result) //head is pointer to singly linked list
{
struct Node* temp = *head;
char* string1="";
char* str;
while(temp != NULL)
{
string1=myitoa(temp->data,string1); // myitoa() works fine
str=(char*)malloc(1+strlen(string1));
strcpy(str,string1);
strcat(result,str);
temp=temp->next;
}
return result;
}
Последний вызов temp->data всегда приводит к неизвестным мусорным значениям. (Связанный список построен правильно, так как печать связанного списка работает правильно.)
Пример: связанный список 1->2->3
Последний вызов temp->data в функции дает 50 (какое-то мусорное значение), т.е. 1->2->50
в то время как в основной функции список правильно дает 1-> 2-> 3
Последняя переменная оказывается мусором в этой функции, но правильно отображается в основной функции, почему?
strcat(result, string1)
- person chmike   schedule 05.03.2015