|
From: David C. R. <dra...@su...> - 2015-03-11 01:49:54
|
On 03/10/2015 08:07 PM, David Chapman wrote: > On 3/10/2015 5:21 PM, David C. Rankin wrote: >> All, >> >> I have an issue with valgrind-3.8.1 (openSuSE 13.1 x86_64) reporting the >> error: >> >> Conditional jump or move depends on uninitialised value(s) >> >> The error stems from reallocation of a new block of memory. The error is >> triggered when iterating over the reallocated pointer array into the reallocated >> block, despite explicitly setting/initializing values of the new pointers to 0 >> with memset (equivalent to the original allocation with calloc). > > Not quite. calloc() gets the size of the object being cleared in addition to > the number of objects, while memset() gets only the size in bytes. You need to > multiply cmax by sizeof(*slines), as you did for the realloc() call. (Of > course, "slines + cmax" on the same line of code is pointer arithmetic, so it > automatically performs this multiplication. C does have its warts.) > Hah!, Thank you David! (smacks self, places pointed circular hat on head, and turns sadly to face the corner ;-) Sheeze, I can't believe I walked right into that one! Thanks for solving a 'forest for the trees issue.' I could have looked at that for 2-days and never snapped to the omission. Thanks -- David C. Rankin, J.D.,P.E. |