По какой то причине он же не хочет сразу задать массив нужного размера в шапке программы
Тут все равно не понял того что вы пишете. Как можно выделить нужный размер массива если максимальный размер этой самой кучи 113кб. Вылетает в ребут если пытаться что то такое выделять больше чем данный буфер размера.
Ок. Я переделал. Буфер уменьшил до 1кб. В целом тоже работает. Файл 2мб записывался примерно 30секунд но все работает. Всем спасибо!
Ниже получившийся код. Вдруг кому нужно
long trebfilesize = file2.size(), bufsize=1024;
long ost = trebfilesize,tek=0,sled=0,mnog=0, i, j;
unsigned char *buf = new unsigned char[bufsize];
while(ost>0){
if (ost>bufsize) {mnog=bufsize;}
else {mnog=ost;}
Serial.print("mnog= ");
Serial.println(mnog);
tek=sled;
sled=tek+mnog;
if (nullptr == buf) { Serial.print("error"); }
for(i=tek, j=0;i<sled, j<mnog;i++,j++){
buf[j]=file2.read();
}
file3.write( buf, mnog );
ost=ost-mnog;
Serial.print("ost= ");
Serial.println(ost);
}
delete [] buf;