Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Динамический двумерный массив


Автор: FTTA 3.2.2012, 19:32
Двумерный массив типа char в который переносятся данные из структуры. Это кусочек пректа, что написана в CodeGear RAD Studio 2009. Оно компилируется без проблем, но при выполнении выдает ошибку доступа к памяти. Я тестил этот кусок в Borland C + + for DOS все работает нормально.

Подскажите почему не работает в CodeGear

Код

struct POLE
  {
  char name_file[50],name_r[50],name_kartinka[50],shlax_kartinka[50];
  POLE *next;
  int index;
  };


Переменная element является типа POLE (element POLE; element=new (POLE);)

Код

char **spusok;
int i,nn;
  spusok=new char*[kilkist];
  for(i=0;i<kilkist;i++);
    {
    spusok[i]=new char[50];
    }
  //======shas zamytum spusok=============
  i=0;
  while(element!=NULL)
    {
    strcpy(spusok[i],element->name_r);
    i++;
    element=element->next;
    }


Думал может конфликт возникает из-за strcpy(r1,r2). Пробовал еще так,но также не работает
Код

char **spusok;
int i,nn;
  spusok=new char*[kilkist];
  for(i=0;i<kilkist;i++);
    {
    spusok[i]=new char[50];
    }
  //======shas zamytum spusok=============
  i=0;
  while(element!=NULL)
    {

    for(nn=0;nn<50;nn++)
        {
            spusok[i][nn]=element->name_r[nn];
            if(element->name_r=='\0') break;
        }
    i++;
    element=element->next;
    }


 

Автор: feodorv 3.2.2012, 20:11
Цитата(FTTA @  3.2.2012,  19:32 Найти цитируемый пост)
  while(element!=NULL)
    {
    strcpy(spusok[i],element->name_r);
    i++;
    element=element->next;
    }

Отсутствует условие на i, оно может превысить значение kilkist.
Список элементов точно заканчивается нулевым указателем (element->next когда-нибудь примет значение NULL)?

Добавлено через 3 минуты и 24 секунды
kilkist может иметь нулевое значение.
Цитата(FTTA @  3.2.2012,  19:32 Найти цитируемый пост)
for DOS все работает

Это не показатель)))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)