Sujet : Re: realloc() - frequency, conditions, or experiences about relocation?
De : Keith.S.Thompson+u (at) *nospam* gmail.com (Keith Thompson)
Groupes : comp.lang.cDate : 24. Jun 2024, 10:55:39
Autres entêtes
Organisation : None to speak of
Message-ID : <875xtyu0kk.fsf@nosuchdomain.example.com>
References : 1 2 3 4 5
User-Agent : Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux)
Lawrence D'Oliveiro <
ldo@nz.invalid> writes:
On Fri, 21 Jun 2024 21:12:12 +0200, Bonita Montero wrote:
Usually you don't resize the block with a few bytes ...
>
The usual way I use realloc is to maintain separate counts of the number
of array elements I have allocated, and the number I am actually using. A
realloc call is only needed when the latter hits the former. Every time I
call realloc, I will extend by some minimum number of array elements (e.g.
128), roughly comparable to the sort of array size I typically end up
with.
>
And then when the structure is complete, I do a final realloc call to
shrink it down so the size is actually that used. Is it safe to assume
such a call will never fail? Hmm ...
It's not safe to assume that a shrinking realloc call will never fail.
It's possible that it will never fail in any existing implementation,
but the standard makes no such guarantee.
A (perhaps) plausible way it can fail is if allocations of different
sizes are allocated from different pools. Trying to shrink a 1000-byte
object to 100 bytes might fail if the 100-byte pool has been exhausted.
On the other hand, realloc() could just return its argument in such a
case and continue treating the object as a 1000-byte allocation.
(The allocation functions don't have to keep track of how much memory
you asked for, only how much they actually allocated, which is >= what
you asked for.)
Arguably only a poor implementation would fail on a shrinking realloc(),
but the standard permits poor implementations.
Having said all that, if realloc fails (indicated by returning a null
pointer), you still have the original pointer to the object.
Something else that occurs to me: If a shrinking realloc() never fails
in practice, then any code you write to handle a failure won't be
tested.
-- Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.comvoid Void(void) { Void(); } /* The recursive call of the void */
Date | Sujet | # | | Auteur |
17 Jun 24 | realloc() - frequency, conditions, or experiences about relocation? | 95 | | Janis Papanagnou |
17 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 1 | | Chris M. Thomasson |
17 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 53 | | Ben Bacarisse |
17 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 52 | | Malcolm McLean |
17 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 50 | | Ben Bacarisse |
17 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 49 | | Malcolm McLean |
17 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 21 | | Ben Bacarisse |
17 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 17 | | Anton Shepelev |
18 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 16 | | Tim Rentsch |
18 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 8 | | Malcolm McLean |
18 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 5 | | Malcolm McLean |
29 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 4 | | Lawrence D'Oliveiro |
2 Jul 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 3 | | Malcolm McLean |
2 Jul 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 1 | | Ben Bacarisse |
4 Jul 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 1 | | Lawrence D'Oliveiro |
24 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 2 | | Tim Rentsch |
24 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 1 | | David Brown |
20 Jun 24 | Indefinite pronouns [was:Re: realloc() - frequency, conditions, or experiences about relocation?] | 7 | | Anton Shepelev |
20 Jun 24 | Re: Indefinite pronouns | 3 | | vallor |
21 Jun 24 | Re: Indefinite pronouns | 2 | | David Brown |
21 Jun 24 | Re: Indefinite pronouns | 1 | | Keith Thompson |
20 Jun 24 | Re: Indefinite pronouns [was:Re: realloc() - frequency, conditions, or experiences about relocation?] | 2 | | Kenny McCormack |
20 Jun 24 | Re: Indefinite pronouns [was: Re: <something technical>] | 1 | | Janis Papanagnou |
21 Jun 24 | Re: Indefinite pronouns [was:Re: realloc() - frequency, conditions, or experiences about relocation?] | 1 | | Tim Rentsch |
17 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 2 | | Richard Harnden |
17 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 1 | | Chris M. Thomasson |
17 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 1 | | Malcolm McLean |
17 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 23 | | Anton Shepelev |
18 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 1 | | David Jones |
19 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 9 | | David Duffy |
19 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 7 | | Malcolm McLean |
19 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 4 | | Ben Bacarisse |
19 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 3 | | David Brown |
19 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 2 | | Ben Bacarisse |
20 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 1 | | David Brown |
20 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 2 | | Anton Shepelev |
8 Jul 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 1 | | Anton Shepelev |
19 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 1 | | Anton Shepelev |
2 Jul 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 12 | | Rich Ulrich |
2 Jul 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 5 | | Keith Thompson |
2 Jul 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 4 | | Rich Ulrich |
8 Jul 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 3 | | Anton Shepelev |
22 Jul 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 2 | | Rich Ulrich |
23 Jul 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 1 | | Anton Shepelev |
2 Jul 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 6 | | Paul |
2 Jul 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 5 | | Rich Ulrich |
2 Jul 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 4 | | Rich Ulrich |
2 Jul 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 3 | | Paul |
2 Jul 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 1 | | James Kuyper |
2 Jul 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 1 | | James Kuyper |
17 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 1 | | Chris M. Thomasson |
18 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 3 | | Keith Thompson |
18 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 1 | | Malcolm McLean |
18 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 1 | | Bonita Montero |
17 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 1 | | David Brown |
17 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 28 | | Bonita Montero |
20 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 27 | | Vir Campestris |
21 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 26 | | Bonita Montero |
24 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 25 | | Lawrence D'Oliveiro |
24 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 21 | | Keith Thompson |
24 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 11 | | David Brown |
24 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 7 | | Malcolm McLean |
24 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 3 | | Keith Thompson |
25 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 1 | | Malcolm McLean |
25 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 1 | | Chris M. Thomasson |
25 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 3 | | Lawrence D'Oliveiro |
25 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 2 | | Bonita Montero |
26 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 1 | | Lawrence D'Oliveiro |
24 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 2 | | Chris M. Thomasson |
24 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 1 | | Bonita Montero |
25 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 1 | | Lawrence D'Oliveiro |
24 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 1 | | Bonita Montero |
25 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 8 | | Lawrence D'Oliveiro |
25 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 6 | | Keith Thompson |
25 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 1 | | Richard Damon |
28 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 2 | | Phil Carmody |
28 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 1 | | Keith Thompson |
28 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 2 | | James Kuyper |
28 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 1 | | Keith Thompson |
28 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 1 | | James Kuyper |
24 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 3 | | Bonita Montero |
24 Jun 24 | Down the hall, past the water cooler, third door on the left... (Was: realloc() - frequency, conditions, or experiences about) relocation? | 2 | | Kenny McCormack |
24 Jun 24 | Re: Down the hall, past the water cooler, third door on the left... (Was: realloc() - frequency, conditions, or experiences about) relocation? | 1 | | Bonita Montero |
17 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 2 | | David Brown |
17 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 1 | | Bonita Montero |
17 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 1 | | Janis Papanagnou |
17 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 1 | | Michael S |
18 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 1 | | Rosario19 |
25 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 7 | | Bonita Montero |
25 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 4 | | Vir Campestris |
25 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 3 | | Bonita Montero |
26 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 2 | | Vir Campestris |
26 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 1 | | Bonita Montero |
25 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 2 | | DFS |
25 Jun 24 | Re: realloc() - frequency, conditions, or experiences about relocation? | 1 | | Bonita Montero |