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


Groups > comp.lang.c > #162502

Re: Freeing a dynamically allocated array of structs within a struct in C

From Manfred <noname@add.invalid>
Newsgroups comp.lang.c
Subject Re: Freeing a dynamically allocated array of structs within a struct in C
Date 2021-08-30 21:49 +0200
Organization Aioe.org NNTP Server
Message-ID <sgjcob$19ot$1@gioia.aioe.org> (permalink)
References (1 earlier) <cvinigd0u1jrb02ch20cequm2nh08copvh@4ax.com> <sgglni$1vg$5@dont-email.me> <sgj0bf$259$1@dont-email.me> <sgj75c$ovg$1@dont-email.me> <sgjaqt$fi4$1@dont-email.me>

Show all headers | View raw


On 8/30/2021 9:16 PM, Lew Pitcher wrote:
> On Mon, 30 Aug 2021 14:14:03 -0400, James Kuyper wrote:
> 
>> On 8/30/21 12:17 PM, Lew Pitcher wrote:
>>> On Sun, 29 Aug 2021 19:04:18 +0000, Lew Pitcher wrote:
>>>
>>>> FWIW
>>>>
>>>> On Sun, 29 Aug 2021 11:44:40 -0700, Barry Schwarz wrote:
>> ...
>>>>> strsep appears to be a function you wrote.
>>>>
>>>> strsep() comes from the 4.4 BSD Unix standard C library extensions.
>>>>
>>>> [snip]
>>>
>>> As for strsep(), my personal opinion is that the OP's program would be
>>> better served if the OP had used the C standard function strtok().
>>
>> I was never a strong fan of strtok(),
> [snip]
>> However, to suggest strtok() as a replacement seems masochistic.
>> Would you care to expand on that comment?
> 
>  From the original post, it appears that the OP is just learning C.
> Certainly, the posted code contains no sophistication that you might
> expect from an experienced C programmer. It lacks, for instance, the
> simple error handling logic you would expect around malloc()'ed pointers,
> and string-handling functions.
> 
> The code uses strsep() to break apart a simple string into two elements,
> using fixed delimiters. While the strsep() function is well-defined by
> POSIX, it is not defined as part of the C standard function library.
> Pedants here have already noted that strsep() isn't part of C, and perhaps
> should not be discussed here.
> 
> However, the C standard function library /does/ contain a function similar
> to strsep(); one that performs essentially the same task, but with the
> full support and topicality of the standard C language and library: strtok()
> 
> strtok(), for all it's flaws, would work /just as well/ in the OP's student
> code, and would have made that part of the code less contentious to the
> pedants in this forum.

Since we are discussing alternatives to strsep, strtok, it might be 
worth mentioning:

strtok_r: does the right thing, but it's POSIX, not ISO C - included in 
glibc.

strtok_s: does also the right thing, arguably more clumsy, it is ISO C, 
_but_ as part of the controversial (and optional) Annex K - not included 
in glibc.

Note the /finesse/ in the postfixes...

> 
> In a prior post, I addressed the other, shall we say, "deviation" that the
> OP's code had from standard C: the use of the POSIX strdup() function. The
> OP can satisfy the pedants here by using a single, standard C compliant,
> if() statement augmented by calls to two standard C functions.
> 
> All this to say that, while /I/ consider neither strdup() nor strsep() to be
> off-topic here, I suggest strtok() as an alternative to strsep() to give
> the OP some breathing-room from the pedants here that /do/ consider them
> off-topic.
> 

Taking a deep breath...

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


Thread

Freeing a dynamically allocated array of structs within a struct in C Bithov Vinu Student <vinub@calday.co.uk> - 2021-08-29 08:34 -0700
  Re: Freeing a dynamically allocated array of structs within a struct in C Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2021-08-29 15:43 +0000
    Re: Freeing a dynamically allocated array of structs within a struct in C Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2021-08-29 16:12 +0000
      Re: Freeing a dynamically allocated array of structs within a struct in C Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-09-06 05:46 -0700
  Re: Freeing a dynamically allocated array of structs within a struct in C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2021-08-29 17:17 +0100
  Re: Freeing a dynamically allocated array of structs within a struct in C Bonita Montero <Bonita.Montero@gmail.com> - 2021-08-29 20:01 +0200
    Re: Freeing a dynamically allocated array of structs within a struct in C Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2021-08-29 18:21 +0000
      Re: Freeing a dynamically allocated array of structs within a struct in C Bonita Montero <Bonita.Montero@gmail.com> - 2021-08-29 20:34 +0200
    Re: Freeing a dynamically allocated array of structs within a struct in C Bonita Montero <Bonita.Montero@gmail.com> - 2021-08-30 09:01 +0200
      Re: Freeing a dynamically allocated array of structs within a struct in C Robert Latest <boblatest@yahoo.com> - 2021-08-31 05:44 +0000
      Re: Freeing a dynamically allocated array of structs within a struct in C Kaz Kylheku <563-365-8930@kylheku.com> - 2021-08-31 07:50 +0000
        Re: Freeing a dynamically allocated array of structs within a struct in C Bonita Montero <Bonita.Montero@gmail.com> - 2021-08-31 10:59 +0200
    Re: Freeing a dynamically allocated array of structs within a struct in C Bonita Montero <Bonita.Montero@gmail.com> - 2021-08-30 09:45 +0200
      Re: Freeing a dynamically allocated array of structs within a struct in C Bonita Montero <Bonita.Montero@gmail.com> - 2021-08-30 10:15 +0200
  Re: Freeing a dynamically allocated array of structs within a struct in C Kaz Kylheku <563-365-8930@kylheku.com> - 2021-08-29 18:14 +0000
  Re: Freeing a dynamically allocated array of structs within a struct in C Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2021-08-29 18:18 +0000
  Re: Freeing a dynamically allocated array of structs within a struct in C Barry Schwarz <schwarzb@delq.com> - 2021-08-29 11:44 -0700
    Re: Freeing a dynamically allocated array of structs within a struct in C Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2021-08-29 19:04 +0000
      Re: Freeing a dynamically allocated array of structs within a struct in C Barry Schwarz <schwarzb@delq.com> - 2021-08-29 14:15 -0700
        Re: Freeing a dynamically allocated array of structs within a struct in C scott@slp53.sl.home (Scott Lurndal) - 2021-08-29 21:19 +0000
          Re: Freeing a dynamically allocated array of structs within a struct in C Barry Schwarz <schwarzb@delq.com> - 2021-08-29 18:14 -0700
        Re: Freeing a dynamically allocated array of structs within a struct in C Bonita Montero <Bonita.Montero@gmail.com> - 2021-08-30 18:27 +0200
      Re: Freeing a dynamically allocated array of structs within a struct in C Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2021-08-30 16:17 +0000
        Re: Freeing a dynamically allocated array of structs within a struct in C James Kuyper <jameskuyper@alumni.caltech.edu> - 2021-08-30 14:14 -0400
          Re: Freeing a dynamically allocated array of structs within a struct in C Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-08-30 11:39 -0700
            Re: Freeing a dynamically allocated array of structs within a struct in C James Kuyper <jameskuyper@alumni.caltech.edu> - 2021-08-31 10:08 -0400
            Re: Freeing a dynamically allocated array of structs within a struct in C Kaz Kylheku <563-365-8930@kylheku.com> - 2021-09-01 04:40 +0000
              Re: Freeing a dynamically allocated array of structs within a struct in C Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-09-01 00:57 -0700
          Re: Freeing a dynamically allocated array of structs within a struct in C Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2021-08-30 19:16 +0000
            Re: Freeing a dynamically allocated array of structs within a struct in C Manfred <noname@add.invalid> - 2021-08-30 21:49 +0200
          Re: Freeing a dynamically allocated array of structs within a struct in C "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2021-08-30 12:49 -0700
          Re: Freeing a dynamically allocated array of structs within a struct in C scott@slp53.sl.home (Scott Lurndal) - 2021-08-30 22:31 +0000
            Re: Freeing a dynamically allocated array of structs within a struct in C Tim Rentsch <tr.17687@z991.linuxsc.com> - 2021-09-30 07:04 -0700
    Re: Freeing a dynamically allocated array of structs within a struct in C Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-08-29 15:38 -0700
      Re: Freeing a dynamically allocated array of structs within a struct in C Manfred <noname@add.invalid> - 2021-08-30 14:21 +0200
      Re: Freeing a dynamically allocated array of structs within a struct in C Bonita Montero <Bonita.Montero@gmail.com> - 2021-08-30 18:29 +0200
        Re: Freeing a dynamically allocated array of structs within a struct in C Bart <bc@freeuk.com> - 2021-08-30 18:30 +0100
          Re: Freeing a dynamically allocated array of structs within a struct in C Bonita Montero <Bonita.Montero@gmail.com> - 2021-08-31 04:22 +0200

csiph-web