These are some stupid mistakes I made programming C.
strlen ("\0") in
malloc as a
substitute for 1. This is stupid because it gives a value of zero. The
correct way to do this is to write
sizeof ((char) '\0').
I added an offset to a pointer twice instead of once. Notice how
cur is added to
svbuf and then added again in the call
memcpy in the following: JSON::Parse pointer arithmetic error on Github.
This led to segmentation fault errors when the Perl module was parsing
long JSON strings containing escape characters like
Given an array of unsigned integers,
unsigned int * keys; // something like 1, 2, 3
I searched them with
int *) for the "size of element" parameter:
found = bsearch (word, keys, n_keys, sizeof (unsigned int *), compare);
This actually worked perfectly well on the 32 bit computer, but on a 64-bit computer, when the size of an unsigned int was different from the size of a pointer to unsigned int, it caused all kinds of mystery crashes.