Проблема с массивом строк

Point
Offline
Зарегистрирован: 15.03.2017

Вроде простая задача. Считать с флэшики 128 байт и запихать в массив из 8 строк по 16 символов.

Не придумал ничего умнее, но и это не работатет

#include <SD.h> // библиотека для работы с флешкой
char* Name[8]; //Имена
 
void setup() {
  byte Tmp[128];
  char tmp[16];
  if (SD.begin(Pin_CS)) {
    // Чтение данных из файла
    FileInfo = SD.open("info.rec", FILE_WRITE);
    if (FileInfo) {
      for (int i = 0; i < 128; i++) {
        Tmp[i] = FileInfo.read();
      }
      for (int j = 0; j < 8; j++) {
        for (int i = 0; i < 16; i++) {
          tmp[i] = char(Tmp[j * 16 + i]);
        }
      Name[j] = tmp;
      }
    }
  }
}
 
void loop()
{
      

В результате во всех элементах массива Name записаны последние 16 символов. В чем косяк?

Point
Offline
Зарегистрирован: 15.03.2017

Чой то я закрывающихся скобок лишку наставил. Копировал из разных мест. Скетч очень большой.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

1. http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii - если хотите, чтобы кто-то прочитал.

Point пишет:

В результате во всех элементах массива Name записаны последние 16 символов. В чем косяк?

А чего Вы хотели, если у Вас все элементы массива Name указывают на одну и ту же область памяти (на масив Tmp)?