Create some space for title dynamically INSIDE The loop
workout_menu[w].title = (char *)malloc(sizeof(char) * 10);
And then use sprintf/snprintf to copy directly into the title member of SimpleMenuItem (not a local variable)
sprintf(workout_menu[w].title, "Workout %c", workouts[w].letter)
Remember to use free() when you're finished so you don't have a memory leak.