Pointer Example: Pass by Value


#include <stddef.h> /* For definition of NULL */

/*
 * Basic link list structure
 */
struct ll {
	int data;
	struct ll * next;
};

extern struct ll *thelist;

/*
 * Note we pass in the structure
 * This is called pass by value.
 */
struct ll
find_element(struct ll new_member)
{
	struct ll *elem;
	struct ll found_member = {
		-1,
		NULL
	};

	for (elem = thelist; elem != NULL; elem = elem->next) {
		if (elem->data == new_member.data) {
			found_member = *elem;
			break;
		}
	}
	return found_member;
}

next slide