Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
| From | Ben Bacarisse <ben.usenet@bsb.me.uk> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: Help with a known member reference in forward conveyance |
| Date | 2015-11-06 20:21 +0000 |
| Organization | A noiseless patient Spider |
| Message-ID | <87mvuqvpzn.fsf@bsb.me.uk> (permalink) |
| References | <b2458ed7-1f02-4177-89b0-df952b1f2163@googlegroups.com> |
"Rick C. Hodgin" <rick.c.hodgin@gmail.com> writes:
<snip>
> 03: struct SContainer
> 04: {
> 05: struct SData* d1;
> 06: struct SData* d2;
> 07: struct SData* d3;
> 08: struct SData* d4;
> 09: struct SData* d5;
> 10: struct SData* d6;
> 11: struct SData* d7;
> 12: struct SData* d8;
> 13: };
<snip>
> I'm looking for something like this "memberRef" ability, which conveys
> the relative offset for the struct without manual mechanics:
You can do it with offsetof:
>
> 14: struct SContainer? t; // A member reference holder
At this point, just declare
size_t member_offset;
> 15:
> 16: if (some_test)
> 17: t = d5; // Need to update d5
member_offset = offsetof(struct SContainer, d5);
> 18:
> 19: // More instructions
> 20:
> 21: // Allocate pointer
> 22: struct SContainer* c = malloc(sizeof(struct SContainer));
> 23: if (c)
> 24: {
> 25: // Now I can update c->d5 without knowing what it was
> 26: // in 16: directly, but I simply use the t ?memberRef.
> 26: c->?t = ptr;
struct SData *dp = (void *)((char *)c + member_offset);
*dp = ptr;
> 27: // At this point, c->d5 was set to ptr
> 28: }
But the form of struct SContainer suggests an array of SData pointers
would be better. Then you just need to remember an index.
<snip>
--
Ben.
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Help with a known member reference in forward conveyance "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2015-11-06 09:27 -0800
Re: Help with a known member reference in forward conveyance Barry Schwarz <schwarzb@dqel.com> - 2015-11-06 11:06 -0800
Re: Help with a known member reference in forward conveyance Bartc <bc@freeuk.com> - 2015-11-06 19:20 +0000
Re: Help with a known member reference in forward conveyance Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-11-06 20:21 +0000
Re: Help with a known member reference in forward conveyance "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2015-11-06 13:27 -0800
Re: Help with a known member reference in forward conveyance Philip Lantz <prl@canterey.us> - 2015-11-07 01:37 -0800
Re: Help with a known member reference in forward conveyance Bartc <bc@freeuk.com> - 2015-11-07 10:45 +0000
Re: Help with a known member reference in forward conveyance "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2015-11-07 05:06 -0800
Re: Help with a known member reference in forward conveyance Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-11-07 17:26 +0000
Re: Help with a known member reference in forward conveyance Philip Lantz <prl@canterey.us> - 2015-11-07 11:20 -0800
Re: Help with a known member reference in forward conveyance Philip Lantz <prl@canterey.us> - 2015-11-07 11:22 -0800
Re: Help with a known member reference in forward conveyance "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2015-11-07 05:05 -0800
Re: Help with a known member reference in forward conveyance Philip Lantz <prl@canterey.us> - 2015-11-07 11:35 -0800
Re: Help with a known member reference in forward conveyance "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2015-11-07 12:06 -0800
Re: Help with a known member reference in forward conveyance Ian Collins <ian-news@hotmail.com> - 2015-11-08 09:17 +1300
Re: Help with a known member reference in forward conveyance Philip Lantz <prl@canterey.us> - 2015-11-07 13:51 -0800
Re: Help with a known member reference in forward conveyance Ian Collins <ian-news@hotmail.com> - 2015-11-08 11:18 +1300
Re: Help with a known member reference in forward conveyance raltbos@xs4all.nl (Richard Bos) - 2015-11-10 16:58 +0000
Re: Help with a known member reference in forward conveyance Keith Thompson <kst-u@mib.org> - 2015-11-10 09:15 -0800
Re: Help with a known member reference in forward conveyance raltbos@xs4all.nl (Richard Bos) - 2015-11-10 19:05 +0000
Re: Help with a known member reference in forward conveyance James Kuyper <jameskuyper@verizon.net> - 2015-11-10 12:20 -0500
csiph-web