C中的链接列表,它在Visual Studio中正常运行但在Linux中没有

时间:2013-09-26 00:37:16

标签: c linux visual-studio visual-studio-2008 linked-list

我对链接列表的c代码感到困惑。代码在visual studio中正常工作,但不适用于Linux。代码如下

typedef struct map 
{
    char key[50];
    char value[50];
    struct map* next;
} map_t;

void AddEntry( map_t** head, char* key, char* value )
{
    map_t* newEntry = (map_t*)malloc(sizeof(map_t) );
    strcmp( newEntry->key,  key);
    strcmp( newEntry->value, value);
    newEntry->next = NULL;

    if ( *head == NULL )
    {
        *head = newEntry;
    }
    else
    {
        map_t** currentEntry = head;

        while ( (*currentEntry)->next != NULL )
        {
            *currentEntry = (*currentEntry)->next;
        }

       (*currentEntry)->next = newEntry;
    }
}

这是我的电话:

map_t* localListHead = NULL;
AddEntry( &localListHead, "??", "Test" );

有人看到我没看到的东西吗?

1 个答案:

答案 0 :(得分:0)

我可能错了,但似乎你的else块中的代码有问题。您声明map_t** currentEntry已分配给head,然后写入其中。你为什么这样做?

据我所知,你有什么需要map_t* currentEntry = *head