while(tmin<=tmax)
the <= will push *p, *q, and *t past their malloced length;



prompt > cat n.c
#include <stdio.h>
int euler( double tmin, double tmax)
{
const double dt = 0.0005;