PREV INDEX NEXT

Author: Stan Eisenstat
Subject: Re: [Cs223] Valgrind error in provided code
Date: Friday, 14 Feb 2020, 16:08:30


    > Message Posted By: JK
    >
    > The example code for using getline fails to initialize "line". If I run
    > the following code through valgrind:
    >
    >     #define _GNU_SOURCE
    >     #include <stdio.h>
    >     #include <stdlib.h>
    >
    >     int main()
    >     {
    >         size_t n = 0;  char *line;
    >         while (getline (&line, &n, stdin) != -1) {
    >             fputs (line, stdout);
    >             free (line);
    >             n = 0;
    >             line = NULL;
    >         }
    >         free (line);
    >     }
    >
    >
    > then valgrind prints the following message:
    >
    > ==3587233== Conditional jump or move depends on uninitialised value(s)
    > ==3587233==    at 0x48F61F1: getdelim (in /usr/lib/libc-2.30.so)
    > ==3587233==    by 0x1091D5: main (in /home/jk/temp/algo/hw3/a.out)

Thanks for pointing out that the declaration

  char *line;

above should have been

  char *line = NULL;

I have updated the on-line version of the specification
to reflect this change.

--Stan-
PREV INDEX NEXT