clarification

punith's Avatar, Join Date: Sep 2007
Go4Expert Member
Hi all

Given the following structure
Code:
typedef struct value_pair {
        char                    name[40];
        int                      attribute;
        int                      type;
        int                     length; /* of strvalue */
        uint32_t              lvalue;
        LRAD_TOKEN     operator;
        uint8_t                 strvalue[MAX_STRING_LEN];
        ATTR_FLAGS      flags;
        struct value_pair   *next;
} VALUE_PAIR;
I am not understanding this small function
Code:
void pairadd(VALUE_PAIR **first, VALUE_PAIR *add)
{
        VALUE_PAIR *i;

        if (*first == NULL) {
                *first = add;
                return;
        }
        for(i = *first; i->next; i = i->next)
                ;
        i->next = add;
}
what for loop is doing???
this function is called in the following sequence
pairadd(&list, vp); where list and vp are again pointers of type VALUE_PAIR

thanks in advance

regards
punith

Last edited by shabbir; 19Sep2007 at 19:57.. Reason: Code block
DaWei's Avatar, Join Date: Dec 2006
Team Leader
The for loop is moving through the linked list until it reaches the end, as indicated by the next pointer being null.

Now, you've gotten your free help. Perhaps you could do a favor in return. USE CODE TAGS AROUND YOUR CODE. If you haven't read the "Before you post a query" thread, yet, please do that. Anything less is rude to your potential (free) helpers.
punith's Avatar, Join Date: Sep 2007
Go4Expert Member
Ok