I'm working on a code that uses a library to send infrared signals. but the argument to the function that sends the infrared is a gigantic array of ints so that after saving 2 arrays my memory for variables has run out. as the arrays are constants I chose to use PROGMEM to save them in memory to program. I know that the function that sends the program is prepared to search the array in the memory of variables and not in the memory of programs. all research sources say that it must first be transferred from the memory of programs to the memory of variables, saving it in a array that holds the largest array saved in program memory, the problem is that the creation of this array in variable memory consumes a lot of memory and the compiler warns that instabilities may occur. the question is: can I use saved data in program memory in the functions of my program without transferring them to variable memory?
Show your code. Which board?
There is e.g. only 2k memory in an Uno; one has to use it intelligently and if that still gives probems one will have to upgrade to a processor with more memory.
Not too much knowlege of IR; does e.g. all that IR data have to be send in one block? Or can you get away with writing two blocks with minor delay in between?
If the library you use does not have a function that features a raw send from PROGMEM, add it.
What IR receiver and transmitter are you using?
I think perhaps you have misunderstood the research sources. Data stored in Flash memory (PROGMEM) can be access as discretely as one byte at at time, and as long as you only need one or a few of these entries per function call, they can all be assigned to local variables and consume no 'actual' memory at all (as in they'll disappear outside of scope).