Sponsored Content
Top Forums Programming unidirectional linked list pointer problem Post 302594180 by DreamWarrior on Monday 30th of January 2012 05:59:27 PM
Old 01-30-2012
I'm not sure what you want the "dlist_position" to be, but what you're doing in that insert won't work at all. How you have it coded right now is very likely to crash when executing newPosition->next = p->next as the first time it's called p is NULL (likely; possibly some random value depending on compiler/optimizations, etc) and you can not execute p->next through the NULL pointer.

I would assume you want "dlist_position" to be a node in the list (maybe consider calling it dlist_node?). If that's the case, you'll have to special case when you want the new data to be inserted as the first position in the list.

I suggest allowing dlist_insert to special case when p == NULL, handling it correctly by linking the new position to the head of l. Then the very first call:

Code:
p = dlist_insert(list, p, element[0]);

becomes:
Code:
p = dlist_insert(list, NULL, element[0]);

Having no idea what the structure for dlist is, however, we can't help any more.

edit: also, dlist_position newPosition=malloc(sizeof(element)); looks odd -- I can only hope that dlist_position is just typedef'd as a pointer to an element...but, again, not enough code to tell.

Last edited by DreamWarrior; 01-30-2012 at 07:06 PM..
 

10 More Discussions You Might Find Interesting

1. Programming

Reverse single linked list

Can any one help me in reversing the single linked list and at the same time i want to print the reversed links. (2 Replies)
Discussion started by: dhanamurthy
2 Replies

2. UNIX for Dummies Questions & Answers

List linked files

A perl script that displays the list of files which have multiple links..! ls -l shows number of links in a field. (0 Replies)
Discussion started by: aadi_uni
0 Replies

3. Programming

linked list node with pointer to struct

Suppose to have: struct Tstudent { string name, surname; int matriculation_num; }; struct Tnode { Tstudent* student; Tnodo* next; } L;I want to deference that "student" pointer. For example, I tried with: *(L->student).matriculation_numbut it not worked, as terminal... (4 Replies)
Discussion started by: Luke Bonham
4 Replies

4. Programming

shared memory with linked list??

is this possible, if so plz please share with me.. Correct English please, not Cyber-/Leetspeak (11 Replies)
Discussion started by: vijay_manpage
11 Replies

5. Programming

I need C++ Code for single linked list

I need C++ Code for single linked list With operations as 1)insert at any position 2)delete any 3)change the data of any position (2 Replies)
Discussion started by: girija
2 Replies

6. Programming

Help with linked list in C

i have this code typedef struct client_list { char *client_name; struct client_list * next; int client_socket_fd; } client; client *current, *head; head = NULL; char *h="test"; add_client(current, h, head, &client_socket_fd); ... (24 Replies)
Discussion started by: omega666
24 Replies

7. Programming

How to check if something exists in linked list in C?

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)
Discussion started by: omega666
1 Replies

8. Programming

Help with linked list.

#include<stdio.h> #include<stdlib.h> struct LinkedList { int val; struct LinkedList *next; }node; /*Creating a structure variable*/ typedef struct LinkedList Node; Node *start = NULL; int create(int i) { Node *temp = NULL; if (start == NULL) ... (5 Replies)
Discussion started by: prinsh
5 Replies

9. Programming

How to delete the last node in a linked list.?

How to delete the last node in a single linked list given only the pointer to last node ? Head node will not be given. (5 Replies)
Discussion started by: VSSajjan
5 Replies

10. Programming

How to reverse a linked list by traversing only once.?

Program to reverse a linked list by traversing only once. (1 Reply)
Discussion started by: VSSajjan
1 Replies
list(3) 						    InterNetNews Documentation							   list(3)

NAME
list - list routines SYNOPSIS
#include <inn/list.h> struct node { struct node *succ; struct node *pred; }; struct list { struct node *head; struct node *tail; struct node *tailpred; }; void list_new(struct list *list); struct node *list_addhead(struct list *list, struct node *node); struct node *list_addtail(struct list *list, struct node *node); struct node *list_head(struct list *list); struct node *list_tail(struct list *list); struct node *list_succ(struct node *node); struct node *list_pred(struct node *node); struct node *list_remhead(struct list *list); struct node *list_remtail(struct list *list); struct node *list_remove(struct node *node); struct node *list_insert(struct list *list, struct node *node, struct node *pred); bool list_isempty(struct list *list); DESCRIPTION
list_new initialises the list header list so as to create an empty list. list_addhead adds node to the head of list, returning the node just added. list_addtail adds node to the tail of list, returning the node just added. list_head returns a pointer to the the node at the head of list or NULL if the list is empty. list_tail returns a pointer to the the node at the tail of list or NULL if the list is empty. list_succ returns the next (successor) node on the list after node or NULL if node was the final node. list_pred returns the previous (predecessor) node on the list before node or NULL if node was the first node. list_remhead removes the first node from list and returns it to the caller. If the list is empty NULL is returned. list_remtail removes the last node from list and returns it to the caller. If the list is empty NULL is returned. list_remove removes node from the list it is on and returns it to the caller. list_insert inserts node onto list after the node pred. If pred is NULL then node is added to the head of list. HISTORY
Written by Alex Kiernan <alex.kiernan@thus.net> for InterNetNews 2.4.0. $Id: list.pod 7851 2008-05-26 19:33:08Z iulius $ INN 2.5.2 2009-05-21 list(3)
All times are GMT -4. The time now is 09:06 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy