fileLengthPtr = PQgetvalue(result, rowIndex, fileLengthColumnIndex); memcpy(&fileLength, fileLengthPtr, sizeof(fileLength)); The value being returned is of type integer. It should have the value 7237 in binary. It actually has the value: fileLengthPtr[0] 0 char fileLengthPtr[1] 0 char fileLengthPtr[2] 28 '?' char fileLengthPtr[3] 69 'E' char Which is not 7237, it's: fileLength 1159462912 int Why?