Liste des Groupes | Revenir à cl c |
On 17.06.2024 02:06, Keith Thompson wrote:Janis Papanagnou <janis_papanagnou+ng@hotmail.com> writes:>
[...]#include <stdlib.h>
#include <stdio.h>
>
void main (int argc, char * argv[])
{
int chunk = 10;
int bufsize = chunk+1;
char * buf = malloc(bufsize);
char * anchor = buf;
while (fgets(buf, chunk+1, stdin) != NULL)
if (realloc(anchor, bufsize += chunk) != NULL)
buf += chunk;
puts(anchor);
}
realloc() can return the pointer you pass to it if there's enough room
in the existing location. (Or it can relocate the buffer even if there
is enough room.)
But if realloc() moves the buffer (copying the existing data to it), it
returns a pointer to the new location and invalidates the old one. You
discard the new pointer, only comparing it to NULL.
Perhaps you assumed that realloc() always expands the buffer in place.
It doesn't.
No, I didn't assume that. I just missed that 'anchor' will get lost.
Thanks!
>>
If the above program worked for you, I suspect that either realloc()
never relocated the buffer, or you continued using the original buffer
(and beyond) after realloc() invalidated it. [...]
Yes, that was certainly the case. (I did no thorough test with large
data sets, just a simple ad hoc test.)
>
>
Elsethread I suggested to merge the malloc() with the realloc() call.
The resulting code would be simpler (and might address that problem).
>
int chunk = 10;
int bufsize = 1;
char * anchor = NULL;
while ((anchor = realloc (anchor, bufsize += chunk)) != NULL &&
fgets (anchor+bufsize-chunk-1, chunk+1, stdin) != NULL)
;
puts (anchor);
>
>
Do you see the exposed problem (or any other issues) here, too?
Date | Sujet | # | Auteur | |
15 Jun 24 | Whaddaya think? | 96 | DFS | |
15 Jun 24 | Re: Whaddaya think? | 1 | Malcolm McLean | |
16 Jun 24 | Re: Whaddaya think? | 5 | Ben Bacarisse | |
16 Jun 24 | Re: Whaddaya think? | 2 | bart | |
16 Jun 24 | Re: Whaddaya think? | 1 | Ben Bacarisse | |
16 Jun 24 | Re: Whaddaya think? | 2 | DFS | |
17 Jun 24 | Re: Whaddaya think? | 1 | Ben Bacarisse | |
16 Jun 24 | Re: Whaddaya think? | 23 | Keith Thompson | |
16 Jun 24 | Re: Whaddaya think? | 22 | DFS | |
16 Jun 24 | Re: Whaddaya think? | 1 | Keith Thompson | |
17 Jun 24 | Re: Whaddaya think? | 19 | James Kuyper | |
17 Jun 24 | Re: Whaddaya think? | 1 | Tim Rentsch | |
17 Jun 24 | Re: Whaddaya think? | 13 | Kaz Kylheku | |
17 Jun 24 | Re: Whaddaya think? | 1 | Chris M. Thomasson | |
17 Jun 24 | Re: Whaddaya think? | 6 | DFS | |
17 Jun 24 | Re: Whaddaya think? | 5 | Richard Harnden | |
17 Jun 24 | Re: Whaddaya think? | 1 | David Brown | |
23 Jun 24 | Re: Whaddaya think? | 3 | Kaz Kylheku | |
23 Jun 24 | Re: Whaddaya think? | 1 | Keith Thompson | |
23 Jun 24 | Re: Whaddaya think? | 1 | Phil Carmody | |
18 Jun 24 | Re: Whaddaya think? | 5 | Tim Rentsch | |
18 Jun 24 | Re: Whaddaya think? | 4 | Keith Thompson | |
19 Jun 24 | Re: Whaddaya think? | 3 | Tim Rentsch | |
19 Jun 24 | Re: Whaddaya think? | 2 | Keith Thompson | |
19 Jun 24 | Re: Whaddaya think? | 1 | Kaz Kylheku | |
17 Jun 24 | Re: Whaddaya think? | 4 | DFS | |
17 Jun 24 | Re: Whaddaya think? | 3 | Ben Bacarisse | |
18 Jun 24 | Re: Whaddaya think? | 2 | Janis Papanagnou | |
18 Jun 24 | Re: Whaddaya think? | 1 | Keith Thompson | |
17 Jun 24 | Re: Whaddaya think? | 1 | James Kuyper | |
16 Jun 24 | Re: Whaddaya think? | 60 | Michael S | |
16 Jun 24 | Re: Whaddaya think? | 58 | Lawrence D'Oliveiro | |
16 Jun 24 | Re: Whaddaya think? | 57 | Janis Papanagnou | |
16 Jun 24 | Re: Whaddaya think? | 8 | Keith Thompson | |
16 Jun 24 | Re: Whaddaya think? | 1 | Lawrence D'Oliveiro | |
16 Jun 24 | Re: Whaddaya think? | 6 | Janis Papanagnou | |
16 Jun 24 | Re: Whaddaya think? | 5 | DFS | |
16 Jun 24 | Re: Whaddaya think? | 4 | David Brown | |
16 Jun 24 | Re: Whaddaya think? | 2 | bart | |
17 Jun 24 | Re: Whaddaya think? | 1 | David Brown | |
17 Jun 24 | Re: Whaddaya think? | 1 | DFS | |
16 Jun 24 | Re: Whaddaya think? | 45 | Janis Papanagnou | |
16 Jun 24 | Re: Whaddaya think? | 44 | Keith Thompson | |
16 Jun 24 | Re: Whaddaya think? | 43 | Janis Papanagnou | |
16 Jun 24 | Re: Whaddaya think? | 20 | Keith Thompson | |
16 Jun 24 | Re: Whaddaya think? | 19 | Janis Papanagnou | |
16 Jun 24 | Re: Whaddaya think? | 2 | Malcolm McLean | |
16 Jun 24 | Re: Whaddaya think? | 1 | Janis Papanagnou | |
16 Jun 24 | Re: Whaddaya think? | 16 | Keith Thompson | |
17 Jun 24 | Re: Whaddaya think? | 15 | Janis Papanagnou | |
17 Jun 24 | Re: Whaddaya think? | 12 | Keith Thompson | |
17 Jun 24 | Re: Whaddaya think? | 11 | Janis Papanagnou | |
17 Jun 24 | Re: Whaddaya think? | 5 | James Kuyper | |
18 Jun 24 | Re: Whaddaya think? | 1 | Keith Thompson | |
18 Jun 24 | Re: Whaddaya think? | 3 | Janis Papanagnou | |
18 Jun 24 | Re: Whaddaya think? | 1 | James Kuyper | |
18 Jun 24 | Re: Whaddaya think? | 1 | Keith Thompson | |
18 Jun 24 | Re: Whaddaya think? | 5 | Keith Thompson | |
18 Jun 24 | Re: Whaddaya think? | 1 | Janis Papanagnou | |
19 Jun 24 | Re: Whaddaya think? | 3 | Keith Thompson | |
19 Jun 24 | Re: Whaddaya think? | 2 | David Brown | |
19 Jun 24 | Re: Whaddaya think? | 1 | Keith Thompson | |
17 Jun 24 | Re: Whaddaya think? | 2 | James Kuyper | |
17 Jun 24 | Re: Whaddaya think? | 1 | Janis Papanagnou | |
16 Jun 24 | Re: Whaddaya think? | 7 | Michael S | |
16 Jun 24 | Re: Whaddaya think? | 6 | Janis Papanagnou | |
16 Jun 24 | Re: Whaddaya think? | 5 | Michael S | |
16 Jun 24 | Re: Whaddaya think? | 4 | Janis Papanagnou | |
16 Jun 24 | Re: Whaddaya think? | 3 | Michael S | |
16 Jun 24 | Re: Whaddaya think? | 2 | Janis Papanagnou | |
16 Jun 24 | Re: Whaddaya think? | 1 | Michael S | |
17 Jun 24 | Re: Whaddaya think? | 15 | Keith Thompson | |
17 Jun 24 | Re: Whaddaya think? | 11 | Tim Rentsch | |
17 Jun 24 | Re: Whaddaya think? | 8 | Janis Papanagnou | |
17 Jun 24 | Re: Whaddaya think? | 6 | DFS | |
17 Jun 24 | Re: Whaddaya think? | 2 | Chris M. Thomasson | |
18 Jun 24 | Re: Whaddaya think? | 1 | Keith Thompson | |
18 Jun 24 | Re: Whaddaya think? | 2 | Keith Thompson | |
18 Jun 24 | Re: Whaddaya think? | 1 | David Brown | |
18 Jun 24 | Re: Whaddaya think? | 1 | Janis Papanagnou | |
18 Jun 24 | Re: Whaddaya think? | 1 | Tim Rentsch | |
17 Jun 24 | Re: Whaddaya think? | 2 | James Kuyper | |
19 Jun 24 | Re: Whaddaya think? | 1 | Tim Rentsch | |
17 Jun 24 | Re: Whaddaya think? | 3 | Janis Papanagnou | |
17 Jun 24 | Re: Whaddaya think? | 2 | Keith Thompson | |
17 Jun 24 | Re: Whaddaya think? | 1 | Janis Papanagnou | |
16 Jun 24 | Re: Whaddaya think? | 1 | Malcolm McLean | |
16 Jun 24 | Re: Whaddaya think? | 2 | Michael S | |
16 Jun 24 | Re: Whaddaya think? | 1 | Janis Papanagnou | |
16 Jun 24 | Re: Whaddaya think? | 1 | DFS | |
16 Jun 24 | Re: Whaddaya think? | 6 | Lew Pitcher | |
16 Jun 24 | Re: Whaddaya think? | 1 | Malcolm McLean | |
18 Jun 24 | Re: Whaddaya think? | 1 | Lawrence D'Oliveiro | |
25 Jun 24 | Re: Whaddaya think? | 3 | Lew Pitcher | |
25 Jun 24 | Re: Whaddaya think? | 2 | DFS | |
25 Jun 24 | Re: Whaddaya think? | 1 | Lew Pitcher |
Les messages affichés proviennent d'usenet.