Sponsored Content
Full Discussion: Problem with linked lists
Top Forums Programming Problem with linked lists Post 302277010 by spirtle on Thursday 15th of January 2009 06:07:25 AM
Old 01-15-2009
This line is dodgy:
Code:
data[0].friends=malloc(2*sizeof(struct record));

record::friends is of type pointer to pointer to struct record, but you are allocating space for two structs, which isn't the same thing. You need friends to point to the memory you allocated.
Try this
Code:
#include <stdio.h>
#include <stdlib.h>

struct record {
  int id;
  struct record **friends;
};

void subroutine(struct record **data){
    int i;
    *data=malloc(3*sizeof **data);
    struct record* friends = malloc(2*sizeof *friends);
    (*data)[0].friends=&friends;
    for(i=0;i<3;i++) (*data)[i].id=i;
    (*data)[0].friends[0]=data[1];
    printf("%d %d\n", (*data)[0].id, (*data)[0].friends[0]->id);
}

int main(){
    int i;
    struct record *data;

/* This uncommented piece of code works as it is supposed to */
  data=malloc(3*sizeof *data);
  struct record* friends = malloc(2*sizeof *friends);
  data[0].friends=&friends;
  for(i=0;i<3;i++) data[i].id=i;
  data[0].friends[0]=&data[1];
  printf("%d %d\n", data[0].id, data[0].friends[0]->id);

  struct record *data1;
  subroutine(&data1);
  return EXIT_SUCCESS;
}

 

5 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Shell Script to Create non-duplicate lists from two lists

File_A contains Strings: a b c d File_B contains Strings: a c z Need to have script written in either sh or ksh. Derive resultant files (File_New_A and File_New_B) from lists File_A and File_B where string elements in File_New_A and File_New_B are listed below. Resultant... (7 Replies)
Discussion started by: mlv_99
7 Replies

2. Programming

this code for addind polynomials using linked lists showed segmentation error..any help pls..

the error occurs in the function() "add" used... #include<stdio.h> #include<malloc.h> struct node { int exp; int coef; struct node * link; }; struct node * create_list(struct node *,int,int); void display(struct node *); struct node * add(struct node *,struct node *); ... (3 Replies)
Discussion started by: mscoder
3 Replies

3. UNIX for Dummies Questions & Answers

Linked Servers

Hi, We have 2 UNIX Servers, say test1 and test2. Here, if I create a file or folder/delete a file or folder in the 1st server, it gets reflected automatically in the 2nd server. I don't think any links are established between these 2 servers. Both these have 2 different hostnames. How... (1 Reply)
Discussion started by: Dev_Dev
1 Replies

4. Programming

unidirectional linked list pointer problem

I am trying to test some operations on a directed list. However, the declaration of a pointer is giving me trouble. I seem to have done something incorrectly because I get an error: "listtest.c:29: warning: 'p' may be used uninitialized in this function" Can anyone help? This is my code... (6 Replies)
Discussion started by: bluetxxth
6 Replies

5. 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
PTS_CHOWN(1)						       AFS Command Reference						      PTS_CHOWN(1)

NAME
pts_chown - Changes the owner of a Protection Database entry SYNOPSIS
pts chown -name <group name> -owner <new owner> [-cell <cell name>] [-noauth] [-localauth] [-force] [-help] pts cho -na <group name> -o <new owner> [-c <cell name>] [-no] [-l] [-f] [-h] DESCRIPTION
The pts chown command designates the user or group named by the -owner argument as the owner of the group named by the -name argument, and records the new owner in the owner field of the group's Protection Database entry. In the case of regular groups, this command automatically changes the group name's owner prefix (the part of the group name before the colon) to match the new owner. If the new owner is itself a group, then only its owner prefix, not its complete name, becomes the owner prefix in the new name. The change to the owner prefix does not propagate to any groups owned by the group, however. To make the owner prefix of such group-owned groups reflect the new owning group, use the pts rename command. It is not possible to change a user or machine entry's owner from the default set at creation time, the system:administrators group. CAUTIONS
While designating a machine as a group's owner does not cause an error, it is not recommended. The Protection Server does not extend the usual privileges of group ownership to users logged onto the machine. OPTIONS
-name <group name> Specifies the current name of the group to which to assign a new owner. -owner <new owner> Names the user or group to become the group's owner. -cell <cell name> Names the cell in which to run the command. For more details, see pts(1). -force Enables the command to continue executing as far as possible when errors or other problems occur, rather than halting execution at the first error. -help Prints the online help for this command. All other valid options are ignored. -localauth Constructs a server ticket using a key from the local /etc/openafs/server/KeyFile file. Do not combine this flag with the -cell or -noauth options. For more details, see pts(1). -noauth Assigns the unprivileged identity anonymous to the issuer. For more details, see pts(1). EXAMPLES
The following example changes the owner of the group "terry:friends" from the user "terry" to the user "pat". A side effect is that the group name changes to "pat:friends". % pts chown -name terry:friends -owner pat The following example changes the owner of the group "terry:friends" from the user "terry" to the group "pat:buddies". A side effect is that the group name changes to "pat:friends". % pts chown -name terry:friends -owner pat:buddies PRIVILEGE REQUIRED
The issuer must belong to the system:administrators group or currently own the group. SEE ALSO
pts(1), pts_rename(1) COPYRIGHT
IBM Corporation 2000. <http://www.ibm.com/> All Rights Reserved. This documentation is covered by the IBM Public License Version 1.0. It was converted from HTML to POD by software written by Chas Williams and Russ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell. OpenAFS 2014-04-08 PTS_CHOWN(1)
All times are GMT -4. The time now is 03:10 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy