1)
Код
writeBytes(alt_u8 array[], alt_u32 address,alt_u8 id, alt_u32 data){
alt_u8
tempArray[data],//тот самый статически выделенный массив(сейчас создаётся в tempArray). иногда data это размер в последствии пришедших данных а иногда это просто любое число(вот тогда и возникали непонятные адреса)
...
switch(id){
case(...):
break;
case(...):
break;
case(0x35):
writeBlockData(array,data)//тут теперь процедура в которой создаётся массив c длинной дата
break;
}
}
2)
Код
....
alt_u8 *memory=0;
memory=address;
for(index=0;index<(data+2);index++){
*(memory+index)=IORD_DIRECT(....);
...
}
если честно то сейчас уже интересно только куда сохранялись данные по адресам которые я не выделял. В какое физическое место. т.к ситуация решена.
ну а с созданием массива я тупил, согласен. Ссылка на вершину масива теряется поле входа из функции. Где тут вымучивание кучи? Глобальные массивы не люблю. вообще глобальные не люблю. хотя тут наверное оптимально было бы. Но опять же я только минимальный массив создать смогу, а при приходе точного необходимого размера мне придётся вызывать каждый раз malloc. Либо создавать сразу гиганский массив на всю доступную мне память.
Причина редактирования: слеш не в ту сторону стоял (с) модератор