I think the problem is, that you only work on the malloc'ed memory locally within the function.
You give add_client a pointer of type client. This is given by call by value, i.e. assigning the pointer a newly malloc'ed memory will not assign this memory to the pointer in the main function! Therefore your client *current is pointing to an undefined memory location even after call of add_client.
Better do this:
Furthermore: What are you willing to achieve with:
head = current;
current = head
?
i have a linked list set up like
typedef struct client_list {
char *client_name;
int client_socket_fd;
struct client_list *next;
} client;
client *client_list=NULL;
before adding to the list i check if it already exists, only if it does not then i add
if (client_list==NULL... (1 Reply)
can someone provide an example of a struct linked list, where it has strings as its values, and then how do I check if a specific string (say called buffer) exists in the list of structs?
i dont understand how to make a copy of it to check with
this is what i have
... (0 Replies)
Hi, I am programming in kernel, and I want to use a double linked list that holds infos that every process could access and modify THIS list. So, I suppose it is a 'global' variable since every process(thread) can reach it, I am wondering where to put it? by changing some of the kernel files? (1 Reply)
Program to reverse a linked list by traversing only once. (1 Reply)
Discussion started by: VSSajjan
1 Replies
LEARN ABOUT MOJAVE
malloc_default_zone
MALLOC_ZONE_MALLOC(3) BSD Library Functions Manual MALLOC_ZONE_MALLOC(3)NAME
malloc_create_zone, malloc_destroy_zone, malloc_default_zone, malloc_zone_from_ptr, malloc_zone_malloc, malloc_zone_calloc,
malloc_zone_valloc, malloc_zone_realloc, malloc_zone_memalign, malloc_zone_free -- zone-based memory allocation
SYNOPSIS
#include <malloc/malloc.h>
malloc_zone_t *
malloc_create_zone(vm_size_t start_size, unsigned flags);
void
malloc_destroy_zone(malloc_zone_t *zone);
malloc_zone_t *
malloc_default_zone(void);
malloc_zone_t *
malloc_zone_from_ptr(const void *ptr);
void *
malloc_zone_malloc(malloc_zone_t *zone, size_t size);
void *
malloc_zone_calloc(malloc_zone_t *zone, size_t num_items, size_t size);
void *
malloc_zone_valloc(malloc_zone_t *zone, size_t size);
void *
malloc_zone_realloc(malloc_zone_t *zone, void *ptr, size_t size);
void *
malloc_zone_memalign(malloc_zone_t *zone, size_t alignment, size_t size);
void
malloc_zone_free(malloc_zone_t *zone, void *ptr);
DESCRIPTION
The malloc_create_zone() function creates a malloc zone, advising an initial allocation of start_size bytes, and specifying flags The
returned malloc zone can be used to provide custom allocation and deallocation behavior, and to retrieve additional information about the
allocations in that zone. At present there are no client settable flag values recognized by malloc_create_zone(), the flags argument should
always be passed as zero.
The malloc_destroy_zone() function deallocates all memory associated with objects in zone as well as zone itself.
The malloc_default_zone() function returns the default system malloc zone, used by malloc(3), and free(3).
The malloc_zone_from_ptr() function returns a pointer to the malloc zone which contains ptr or NULL, if the pointer does not point to an
allocated object in any current malloc zone.
The malloc_zone_malloc(), malloc_zone_calloc(), malloc_zone_valloc(), malloc_zone_realloc(), malloc_zone_memalign(), and malloc_zone_free()
perform the same task on zone as their non-prefixed variants, malloc(3), calloc(3), valloc(3), realloc(3), posix_memalign(3), and free(3)
perform on the default system malloc zone.
RETURN VALUES
The malloc_create_zone(), malloc_default_zone(), and malloc_zone_from_ptr() functions return a pointer to a malloc_zone_t structure, or NULL
if there was an error.
The malloc_zone_malloc(), malloc_zone_calloc(), malloc_zone_valloc(), malloc_zone_realloc(), and malloc_zone_memalign() functions return a
pointer to allocated memory. If there is an error, they return a NULL pointer. They are not required to set errno.
SEE ALSO malloc(3), posix_memalign(3)BSD Aug 13, 2008 BSD