* First, I have a sound.c file, which have to care about soundfiles and isolate their frames into an array. I have defined the Sound type as this: typedef struct { char *name ; SF_INFO infos ; float *tabframes ; /* the array contening the frames */ double position ; int error ; int filled ; } Sound; In this sound.c, a soundfile is read with this function: Sound sound_new( const char *name, const char *filename ) { Sound new_sound ; sf_count_t lu ; SNDFILE *stream ; if (filename) { new_sound.name = strdup(name) ; /* read the wav file */ if (( stream = sf_open(filename, SFM_READ, &(new_sound.infos)) ) == NULL ) { new_sound.error = 1 ; return new_sound ; } new_sound.tabframes = calloc((new_sound.infos.frames * new_sound.infos.channels), sizeof(float)) ; lu = sf_readf_float(stream, new_sound.tabframes, (int) new_sound.infos.frames) ; if ( lu != new_sound.infos.frames ) { new_sound.error = 1 ; return new_sound ; } new_sound.position = 0 ; /* will be used to know where to begin the read in jack process() */ new_sound.filled = 1 ; sf_close(stream) ; } /* returning a void Sound if no filename is given, in order to populate the sampler*/ return new_sound ; } * And here is my process() from jack.c . The Sampler type does nothing much for now but holding Samples that are created (they are hold in a_Sampler.bank[] ) int process(jack_nframes_t nframe, void *args) { jack_default_audio_sample_t *out ; int i, j ; float frame2play ; Sampler *instant_sampler ; get_sampler(&instant_sampler) ; /* this function is used to get the actual sampler */ for (i=0; ibank[i].filled) { out = (jack_default_audio_sample_t *) jack_port_get_buffer(output_port, nframe ) ; for (j=0; jbank[i].tabframes[j], 1) ; instant_sampler->bank[i].position += 1 ; } } } return(0) ; } * My problem is that the memcpy always make a segfault in the last occurence of the 'for' loop, in process() . Even if I put " for (j=0; j<2; j++) " instead, it segfault. I have looked in gdb what's going wrong, but don't find a clue. instant_sampler contains the good values, and all the occurences of the for loop run well before the last (but I don't have sound, anyway)... Can anyone help me? elmekki dot olivier @ neuf dot fr