リンクリストがあり、名前で並べ替えたい(たとえば、「Bx」、「Tx」、「Ax」の名前は「Ax」、「Bx」、「Tx」になります)...必要ですノードの右側にあるものに「小さい名前」がある場合に名前を切り替えるには..
これは私が書いたものです:
typedef struct data
{
char *name;
}data;
typedef struct Node
{
data NodeData;
struct Node *next;
struct Node *prev;
}Node;
void Sorting(Node *head)
{
Node *temp = head;
Node *temp2 = (Node*)malloc(sizeof(Node));
while (temp != NULL)
{
if (1 == (strcmp(temp -> NodeData.name, temp -> next -> NodeData.name)))
{
strcpy (temp2 -> NodeData.name, temp -> NodeData.name);
strcpy (temp -> NodeData.name, temp -> next -> NodeData.name);
strcpy (temp -> next -> NodeData.name, temp2 -> NodeData.name);
}
temp = temp -> next;
}
}
ランタイムが発生します-ノードの名前(strcpy行)間でスワープする必要がある部分でエラーが発生しました:アクセス違反(セグメンテーション違反)...