/*
 *	Listing 1 -- Error by reading a freed pointer
 */

#include <stdlib.h>
#include <assert.h>

void	main() {
int	*ip;
int	n;

	/* allocate an integer */
	ip = malloc(sizeof(int));
	assert(ip != NULL);

	/* initialize the integer */
	(*ip) = 1;

	/* deallocate the integer */
	free(ip);

	/* use the deallocated integer */
	n = 3 * (*ip);
	printf("n may or may not equal 3 (n == %d)\n",n);
}
