A few more comments to your code:
Your loop does not have a wait, meaning it spins the empty case millions if times per second, consuming all CPU while not doing anything. Add an indicator to [i] to see.
To clear a 2D array in one case frame, just don't wire the output tunnel and set it to "use default if unwired". You'll get an empty array. No fancy tools needed.
I probably would use an event structure and also protect the data if the save dialog is canceled.
Here's a simple draft that probably requires a bit more work but should show some of the ideas.
You should also
- add some protection that the VI cannot consume all available memory if it runs forever.
- Create a seperate case to save the data later if the file dialog is cancelled the first time.
- ...