Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #120306

Re: Set the result of void function

From Keith Thompson <kst-u@mib.org>
Newsgroups comp.lang.c
Subject Re: Set the result of void function
Date 2017-09-25 08:49 -0700
Organization None to speak of
Message-ID <lnmv5i22z2.fsf@kst-u.example.com> (permalink)
References (16 earlier) <oqavi4$onr$1@dont-email.me> <8c29ee78-bc72-41b4-8c06-880f15ebd63e@googlegroups.com> <oqb28b$eek$1@dont-email.me> <001b7bdd-f28a-4747-80da-81404481b320@googlegroups.com> <74b5ddce-96ec-48aa-a16c-a5a4207c17fe@googlegroups.com>

Show all headers | View raw


Thiago Adams <thiago.adams@gmail.com> writes:
[...]
> What I am saying is that swap is not always a copy.
> If you create a string object with an small buffer, then you have a pointer
> that can point to your buffer inside the string or to external memory heap.
> then to swap string object you cannot copy. you need to fix the pointer.
>
> typedef struct 
> {
>    char *p;
>    char buffer[10];
> } String ;
>
> void String_Init(String* p) {
>   p->p = p->buffer;
> }
>
> if you need more than 10 chars you can allocate on heap.
>
> to swap this string you need to fix the internal pointer.

IF you're working with data structures like that, perhaps it would be
better to rework your code so you can swap pointers rather than full
objects.

More generally, swapping is such a simple operation that you don't
really gain all that much from making it generic.  If you're using a
language that lets you do so easily, that's fine, but in C I typically
just write the code inline:

    {
        const int old_x = x;
        x = y;
        y = old_x;
    }

It's a little more complicated than
    (x, y) = (y, x);
or
    std::swap(x, y);
but it's not *that* bad.

-- 
Keith Thompson (The_Other_Keith) kst-u@mib.org  <http://www.ghoti.net/~kst>
Working, but not speaking, for JetHead Development, Inc.
"We must do something.  This is something.  Therefore, we must do this."
    -- Antony Jay and Jonathan Lynn, "Yes Minister"

Back to comp.lang.c | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Set the result of void function Thiago Adams <thiago.adams@gmail.com> - 2017-09-19 14:23 -0700
  Re: Set the result of void function Thiago Adams <thiago.adams@gmail.com> - 2017-09-19 14:38 -0700
    Re: Set the result of void function gordonb.tfand@burditt.org (Gordon Burditt) - 2017-09-19 17:16 -0500
    Re: Set the result of void function "Pascal J. Bourguignon" <pjb@informatimago.com> - 2017-09-20 00:39 +0200
      Re: Set the result of void function James Kuyper <jameskuyper@verizon.net> - 2017-09-19 22:06 -0400
        Re: Set the result of void function "Pascal J. Bourguignon" <pjb@informatimago.com> - 2017-09-20 06:51 +0200
          Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-20 10:55 +0100
            Re: Set the result of void function Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-09-20 12:11 +0100
            Re: Set the result of void function fir <profesor.fir@gmail.com> - 2017-09-20 07:17 -0700
          Re: Set the result of void function Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-09-20 11:28 +0100
          Re: Set the result of void function mark.bluemel@gmail.com - 2017-09-20 03:30 -0700
            Re: Set the result of void function fir <profesor.fir@gmail.com> - 2017-09-20 06:53 -0700
              Re: Set the result of void function Andrew Haley <andrew29@littlepinkcloud.invalid> - 2017-09-21 03:50 -0500
                Re: Set the result of void function Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-09-21 11:00 +0100
                Re: Set the result of void function scott@slp53.sl.home (Scott Lurndal) - 2017-09-21 12:39 +0000
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-21 14:12 +0100
                Re: Set the result of void function scott@slp53.sl.home (Scott Lurndal) - 2017-09-21 13:51 +0000
                Re: Set the result of void function Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2017-09-21 08:36 -0600
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-21 17:51 +0100
                Re: Set the result of void function supercat@casperkitty.com - 2017-09-21 10:06 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-22 08:51 +0200
                Plunging innocent people into poverty (Was: Set the result of void function) gazelle@shell.xmission.com (Kenny McCormack) - 2017-09-23 09:31 +0000
                Re: Plunging innocent people into poverty (Was: Set the result of void function) David Brown <david.brown@hesbynett.no> - 2017-09-23 12:09 +0200
                Re: Plunging innocent people into poverty (Was: Set the result of void function) gazelle@shell.xmission.com (Kenny McCormack) - 2017-09-23 10:25 +0000
                Re: Plunging innocent people into poverty Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2017-09-23 10:43 -0600
                Re: Plunging innocent people into poverty supercat@casperkitty.com - 2017-09-23 10:41 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-22 09:37 +0200
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-22 11:27 +0100
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-22 14:42 +0200
                Re: Set the result of void function Jorgen Grahn <grahn+nntp@snipabacken.se> - 2017-09-24 12:09 +0000
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-25 08:31 +0200
                Re: Set the result of void function Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2017-09-25 03:52 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-25 13:25 +0200
                Re: Set the result of void function Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2017-09-25 04:58 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-25 14:20 +0200
                Re: Set the result of void function Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-09-25 13:44 +0100
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-25 15:09 +0200
                Re: Set the result of void function Thiago Adams <thiago.adams@gmail.com> - 2017-09-25 05:44 -0700
                Re: Set the result of void function Thiago Adams <thiago.adams@gmail.com> - 2017-09-25 05:58 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-25 15:15 +0200
                Re: Set the result of void function Thiago Adams <thiago.adams@gmail.com> - 2017-09-25 06:46 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-25 16:01 +0200
                Re: Set the result of void function Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2017-09-25 07:18 -0700
                Re: Set the result of void function Thiago Adams <thiago.adams@gmail.com> - 2017-09-25 07:55 -0700
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-25 08:49 -0700
                Re: Set the result of void function Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2017-09-25 09:21 -0700
                Re: Set the result of void function supercat@casperkitty.com - 2017-09-25 09:51 -0700
                Re: Set the result of void function Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-09-25 21:57 +0100
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-25 15:03 -0700
                Re: Set the result of void function Öö Tiib <ootiib@hot.ee> - 2017-09-25 21:34 -0700
                Re: Set the result of void function Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2017-09-26 04:28 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-27 08:26 +0200
                Re: Set the result of void function "James R. Kuyper" <jameskuyper@verizon.net> - 2017-09-27 11:48 -0400
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-28 08:54 +0200
                Re: Set the result of void function gordonb.iddsu@burditt.org (Gordon Burditt) - 2017-09-28 23:33 -0500
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-27 09:15 -0700
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-27 17:50 +0100
                Re: Set the result of void function jameskuyper@verizon.net - 2017-09-27 10:35 -0700
                Re: Set the result of void function Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-09-27 18:47 +0100
                Re: Set the result of void function supercat@casperkitty.com - 2017-09-27 10:52 -0700
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-27 11:10 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-28 09:10 +0200
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-27 11:06 -0700
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-27 20:01 +0100
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-27 12:26 -0700
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-27 20:38 +0100
                Re: Set the result of void function jameskuyper@verizon.net - 2017-09-27 13:00 -0700
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-27 21:54 +0100
                Re: Set the result of void function supercat@casperkitty.com - 2017-09-27 14:12 -0700
                Re: Set the result of void function jameskuyper@verizon.net - 2017-09-27 14:34 -0700
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-27 23:16 +0100
                Re: Set the result of void function jameskuyper@verizon.net - 2017-09-27 16:09 -0700
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-28 01:12 +0100
                Re: Set the result of void function Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-09-28 02:03 +0100
                Re: Set the result of void function Ian Collins <ian-news@hotmail.com> - 2017-09-28 17:31 +1300
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-28 09:55 +0200
                Re: Set the result of void function Ian Collins <ian-news@hotmail.com> - 2017-09-28 21:00 +1300
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-28 10:48 +0100
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-28 13:20 +0200
                Re: Set the result of void function Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-09-28 11:29 +0100
                Re: Set the result of void function jameskuyper@verizon.net - 2017-09-27 20:27 -0700
                Re: Set the result of void function Gareth Owen <gwowen@gmail.com> - 2017-09-29 19:30 +0100
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-29 19:45 +0100
                Re: Set the result of void function Jerry Stuckle <jstucklex@attglobal.net> - 2017-09-29 14:49 -0400
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-27 15:07 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-28 09:42 +0200
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-28 13:55 +0100
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-28 17:22 +0200
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-28 09:14 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-28 20:13 +0200
                Re: Set the result of void function Gareth Owen <gwowen@gmail.com> - 2017-09-29 19:42 +0100
                Re: Set the result of void function Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2017-09-28 09:14 -0700
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-28 09:25 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-28 20:17 +0200
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-28 17:39 +0100
                Re: Set the result of void function jameskuyper@verizon.net - 2017-09-28 10:10 -0700
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-28 19:05 +0100
                Re: Set the result of void function "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2017-09-28 14:20 -0400
                Re: Set the result of void function Ian Collins <ian-news@hotmail.com> - 2017-09-29 07:52 +1300
                Re: Set the result of void function jameskuyper@verizon.net - 2017-09-28 11:59 -0700
                Re: Set the result of void function Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-09-28 18:50 +0100
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-28 19:47 +0100
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-28 21:57 +0200
                Re: Set the result of void function "James R. Kuyper" <jameskuyper@verizon.net> - 2017-09-28 16:14 -0400
                Re: Set the result of void function supercat@casperkitty.com - 2017-09-28 13:17 -0700
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-28 21:23 +0100
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-28 13:55 -0700
                Re: Set the result of void function Gareth Owen <gwowen@gmail.com> - 2017-09-29 19:50 +0100
                Re: Set the result of void function jameskuyper@verizon.net - 2017-09-28 13:57 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-28 23:18 +0200
                Re: Set the result of void function "James R. Kuyper" <jameskuyper@verizon.net> - 2017-09-28 17:38 -0400
                Re: Set the result of void function supercat@casperkitty.com - 2017-09-28 15:54 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-29 08:59 +0200
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-28 14:43 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-29 10:43 +0200
                Re: Set the result of void function supercat@casperkitty.com - 2017-09-29 07:43 -0700
                Re: Set the result of void function Gareth Owen <gwowen@gmail.com> - 2017-09-30 19:21 +0100
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-30 19:45 +0100
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-28 13:31 -0700
                Re: Set the result of void function supercat@casperkitty.com - 2017-09-28 13:41 -0700
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-28 14:07 -0700
                Re: Set the result of void function David Kleinecke <dkleinecke@gmail.com> - 2017-09-28 16:25 -0700
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-28 18:45 -0700
                Re: Set the result of void function David Kleinecke <dkleinecke@gmail.com> - 2017-09-28 19:54 -0700
                Re: Set the result of void function jameskuyper@verizon.net - 2017-09-28 20:51 -0700
                Re: Set the result of void function David Kleinecke <dkleinecke@gmail.com> - 2017-09-28 22:39 -0700
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-29 09:16 -0700
                Re: Set the result of void function gazelle@shell.xmission.com (Kenny McCormack) - 2017-09-29 16:17 +0000
                Re: Set the result of void function David Kleinecke <dkleinecke@gmail.com> - 2017-09-29 11:05 -0700
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-29 11:23 -0700
                Re: Set the result of void function supercat@casperkitty.com - 2017-09-29 12:15 -0700
                Re: Set the result of void function David Kleinecke <dkleinecke@gmail.com> - 2017-09-29 16:04 -0700
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-29 16:44 -0700
                Re: Set the result of void function David Kleinecke <dkleinecke@gmail.com> - 2017-09-30 10:04 -0700
                Re: Set the result of void function supercat@casperkitty.com - 2017-09-30 10:33 -0700
                Re: Set the result of void function jameskuyper@verizon.net - 2017-09-29 11:26 -0700
                Re: Set the result of void function David Kleinecke <dkleinecke@gmail.com> - 2017-09-29 16:03 -0700
                Re: Set the result of void function jameskuyper@verizon.net - 2017-09-29 09:44 -0700
                Re: Set the result of void function David Kleinecke <dkleinecke@gmail.com> - 2017-09-29 11:15 -0700
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-29 11:35 -0700
                Re: Set the result of void function David Kleinecke <dkleinecke@gmail.com> - 2017-09-29 16:11 -0700
                Re: Set the result of void function David Kleinecke <dkleinecke@gmail.com> - 2017-09-29 16:14 -0700
                Re: Set the result of void function supercat@casperkitty.com - 2017-09-30 08:55 -0700
                Re: Set the result of void function jameskuyper@verizon.net - 2017-09-29 11:36 -0700
                Re: Set the result of void function Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-09-29 12:05 +0100
                Re: Set the result of void function Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-09-29 12:17 +0100
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-29 09:15 -0700
                Re: Set the result of void function Ian Collins <ian-news@hotmail.com> - 2017-09-29 09:42 +1300
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-28 21:55 +0100
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-28 14:12 -0700
                Re: Set the result of void function "James R. Kuyper" <jameskuyper@verizon.net> - 2017-09-28 17:22 -0400
                Re: Set the result of void function Gareth Owen <gwowen@gmail.com> - 2017-09-29 19:50 +0100
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-28 09:00 -0700
                Re: Set the result of void function supercat@casperkitty.com - 2017-09-28 09:35 -0700
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-28 10:57 -0700
                Re: Set the result of void function Thiago Adams <thiago.adams@gmail.com> - 2017-09-25 10:35 -0700
                Re: Set the result of void function Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2017-09-25 06:57 -0700
                Re: Set the result of void function Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-09-25 16:32 +0100
                Re: Set the result of void function Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2017-09-25 08:43 -0700
                Re: Set the result of void function Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-09-25 22:12 +0100
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-25 09:03 -0700
                Re: Set the result of void function Jorgen Grahn <grahn+nntp@snipabacken.se> - 2017-09-25 14:17 +0000
          Re: Set the result of void function "James R. Kuyper" <jameskuyper@verizon.net> - 2017-09-20 11:32 -0400
        Re: Set the result of void function fir <profesor.fir@gmail.com> - 2017-09-20 01:50 -0700
          Re: Set the result of void function David Kleinecke <dkleinecke@gmail.com> - 2017-09-20 15:56 -0700
  Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-19 23:01 +0100
    Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-20 15:40 +0200
      Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-20 08:50 -0700
        Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-20 22:52 +0200
          Re: Set the result of void function supercat@casperkitty.com - 2017-09-20 15:04 -0700
    Re: Set the result of void function supercat@casperkitty.com - 2017-09-20 07:39 -0700
  Re: Set the result of void function jameskuyper@verizon.net - 2017-09-19 15:18 -0700
    Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-20 01:21 +0100
      Re: Set the result of void function jameskuyper@verizon.net - 2017-09-19 19:40 -0700
  Re: Set the result of void function rockbrentwood@gmail.com - 2017-09-19 16:36 -0700
    Re: Set the result of void function James Kuyper <jameskuyper@verizon.net> - 2017-09-19 22:13 -0400
    Re: Set the result of void function gazelle@shell.xmission.com (Kenny McCormack) - 2017-09-22 01:48 +0000
  Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-19 19:36 -0700
  Re: Set the result of void function mark.bluemel@gmail.com - 2017-09-20 01:00 -0700
    Re: Set the result of void function fir <profesor.fir@gmail.com> - 2017-09-20 02:01 -0700
  Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-20 08:36 -0700
  Re: Set the result of void function "James R. Kuyper" <jameskuyper@verizon.net> - 2017-09-20 11:36 -0400
  Re: Set the result of void function John Bode <jfbode1029@gmail.com> - 2017-09-20 15:30 -0700

csiph-web