НЕ работает! динамический многомерный строковый массив и файл? что происходит? Oo - страница 2

 
Alexey Viktorov:

Если нужно просто обойти проблему, то можно ещё перед чтением файла изменить размер массива. И ещё попробовать явно указать количество читаемых элементов.

я не знаю заранее сколько там элементов

можно конечно этот массив потом обработать, убрать лишнее, но, я решил записывать массив чтобы не делать лишних операций, получается надежней все перевести в строку с разделителями, потом считать и в структуру

 
Pavel Kolchin:

я не знаю заранее сколько там элементов

можно конечно этот массив потом обработать, убрать лишнее, но, я решил записывать массив чтобы не делать лишних операций, получается надежней все перевести в строку с разделителями, потом считать и в структуру

   for(int i=0;i<p1;i++){
      ArrayResize(arr_1,i+1);
      for(int k=0;k<p2;k++){
         arr_1[i][k]="str("+i+"|"+k+")";
      }
   }
 
Vitaly Muzichenko:

можно сделать и так,  разницы в этом примере нет

только необходимо еще указать резерв, чтобы не происходило перераспределение памяти i раз

 
Pavel Kolchin:

я не знаю заранее сколько там элементов

можно конечно этот массив потом обработать, убрать лишнее, но, я решил записывать массив чтобы не делать лишних операций, получается надежней все перевести в строку с разделителями, потом считать и в структуру

Ещё можно после прочтения файла обрезать размер массива. При чтении массива получили количество элементов, размер второго измерения известен...

  ArrayResize(arr_2, n2/p2);

Проверено. Костыль работает.

 

happy and