Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Что-то где-то переполняется, однако 
:(
    Опции темы
apook
Дата 27.7.2006, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 794
Регистрация: 12.7.2006

Репутация: 9
Всего: 23



Взялся подсказать на одном топике и наткнулся на грабли
По моему рабочий код не всегда работает. Знаю что здесь много говорили
о многомерных массивах и что есть поисковик но че-то не нашел причины,
похоже на то что что-то где-то переполняется.

Код

#include "iostream.h"
#include "iomanip.h"


void IntArray(int *mas[], int nln, int ncol)
{
int i=0, n=0, y;

cout << "Строк" << setw(4) << nln << "\t" << "Столбцов" << setw(3)
     << ncol << "\n...........................\n";

while(i < nln)
     {
      while(n < ncol)
           {
            cout << "Строка " << "[" << i+1 << "]" << setw(15) << "cтолбец "
                 << "[" << n+1 << "]"; 
            cin >> y;
            mas[i][n] = y;
            n++;
                }
      n = 0;
      cout << setw(10) << "---" << i+1 << " из " << nln << "---\n";
      i++; 
          }
     }


void drawarray(int *mas[], int nln, int ncol)
{
int i=0, n=0;

cout << "\n № |"; 

while (i < ncol)
     {
      cout << setw(5) << i+1;
      i++;
          }

cout << "\n..............................\n";

i = 0;
while (i < nln)
     {
      cout << " " << i+1 << " |";
      while (n < ncol)
           {
            cout << setw(5) << mas[i][n];
            n++;
                 }
      cout << "\n";
      n = 0;
      i++;
           }

     }


void main(void)
{
int ncol, nln;

cout << "\nВведите количество строк: ";
cin >> nln;
int **mas = new int*[nln];

cout << "Введите количество столбцов: ";
cin >> ncol;
cout << "\n\n";

for(int i=0; i < nln; i++)
mas[i] = new int[ncol];

IntArray(mas, nln, ncol);
drawarray(mas, nln, ncol);
     }



Прога вылетает(если скомпилирована BCPP 6) 


--------------------
Мои руки из дуба, голова из свинца ну и пусть ...
PM MAIL   Вверх
Romikgy
Дата 27.7.2006, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 8
Всего: 146



а в чем затыка ? у меня работает

Добавлено @ 15:16 
правда  в Dev C++ 


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
apook
Дата 27.7.2006, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 794
Регистрация: 12.7.2006

Репутация: 9
Всего: 23



Ввожу к примеру десять строк и десять столбцев заполняю все поля
далее вместо вывода  на stdout прога прекращается причем без каких
либо ошибок, тогда как скомпилив в Turbo C++ прога справляерся
и вообше сколько махимально можно туда запихать  


--------------------
Мои руки из дуба, голова из свинца ну и пусть ...
PM MAIL   Вверх
Romikgy
Дата 27.7.2006, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 8
Всего: 146



Цитата(apook @  27.7.2006,  14:34 Найти цитируемый пост)
 вообше сколько махимально можно туда запихать 

в смысле? 


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Oleg_Ci
Дата 27.7.2006, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Friend
**


Профиль
Группа: Участник
Сообщений: 485
Регистрация: 28.5.2006
Где: Новосиб.обл.

Репутация: 3
Всего: 30



apook, ввёл твою программу на borland c++ builder 6. - всё работает, даже когда ввожу десять строк и десять столбцов. А может это добавить надо, и всё ОК будет ?
Код

#include "stdlib.h"
...

// в конце программы :
system("pause");
  
PM MAIL   Вверх
Romikgy
Дата 27.7.2006, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 8
Всего: 146



Олег4, 
Цитата(Олег4 @  27.7.2006,  15:15 Найти цитируемый пост)
А может это добавить надо, и всё ОК будет ?

имхо дело в его компиляторе , код имхо правильный 


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
apook
Дата 27.7.2006, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 794
Регистрация: 12.7.2006

Репутация: 9
Всего: 23



Цитата

в смысле?  

в смысле вообще какой величины массив можно создать, сколько данных туда занести возможности WinAPI можно пока не затрагивать

Цитата

имхо дело в его компиляторе , код имхо правильный 

У меня уж возникла глупая мысль что может потому что проц не Intel

Одна особенность: Прога исключительно работает если запущена сразу после компиляции , а есле ее запустмть щелкнув по ней курсором то воз
никают те самые проблемы
 


--------------------
Мои руки из дуба, голова из свинца ну и пусть ...
PM MAIL   Вверх
apook
Дата 27.7.2006, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 794
Регистрация: 12.7.2006

Репутация: 9
Всего: 23



И впрямь же PAUSE ну я олень два дня пропарился
но вопрос открыт по поводу вводимых в массив данных и ограничения
налагаемые типами насколько я понимаю (или нет).  


--------------------
Мои руки из дуба, голова из свинца ну и пусть ...
PM MAIL   Вверх
dumb
Дата 27.7.2006, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 8
Всего: 158



во всем виноват амд(потому что он не интел).  smile
ограничения есть, но чтобы их достичь в такой проге, тебе нужно нанять профессиональную машинистку и оплатить ей год-другой-третий работы... smile

что ты подразумеваешь под фразой "ограничения налагаемые типами" в контексте ввода данных в массив? 
PM MAIL   Вверх
Rockie
Дата 27.7.2006, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 23.4.2006

Репутация: 8
Всего: 31



Цитата(apook @  27.7.2006,  17:24 Найти цитируемый пост)
в смысле вообще какой величины массив можно создать, сколько данных туда занести

при выделении в куче (через new), в 32 разрядной windows программе -  очень большой. 

при таком выделении память надо очищать:

Код
for (int i = 0; i < nln; i++)
   delete[] mas[i];
delete [] mas;




 


--------------------
Чтобы иметь большой гардероб - надо иметь большой гардероб.
PM   Вверх
apook
Дата 28.7.2006, 06:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 794
Регистрация: 12.7.2006

Репутация: 9
Всего: 23



Цитата

во всем виноват амд(потому что он не интел). user posted image

У меня вроде Пентиум был


При заполнении одного из полей одинадцатью единичками программа 
выдает глюк, а ограничения к примеру тип int от -32767 до 32767  

Это сообщение отредактировал(а) apook - 28.7.2006, 06:41


--------------------
Мои руки из дуба, голова из свинца ну и пусть ...
PM MAIL   Вверх
ptr
Дата 28.7.2006, 06:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 661
Регистрация: 31.5.2006
Где: Новосибирск

Репутация: 1
Всего: 14



Цитата(Rockie @  27.7.2006,  22:29 Найти цитируемый пост)
в смысле вообще какой величины массив можно создать, сколько данных туда занести

Всё зависит от размера виртуального адресного пространства - максимально доступного приложению адресного пространства. А оно зависит от архитектуры компьютера и от операционной системы. В 32 битной архитектуре размер виртуального адресного пространства равен 4Гб (правда в Windows доступно долько 2Гб). В 64 битной размер ещё больше. Вот и считай какой величины массив ты можешь создать.

Добавлено @ 06:39 
Цитата(apook @  28.7.2006,  10:16 Найти цитируемый пост)
а ограничения к примеру тип int от -32767 до 32767

Всё зависит от компилятора. 

Цитата(apook @  28.7.2006,  10:16 Найти цитируемый пост)
При заполнении одного из полей одинадцатью единичками программа 
выдает глюк

Не понял. 

Это сообщение отредактировал(а) ptr - 28.7.2006, 06:40


--------------------
Единственный способ определить границы возможного - это выйти за эти границы, в невозможное.
Артур Кларк.
PM MAIL ICQ   Вверх
apook
Дата 28.7.2006, 06:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 794
Регистрация: 12.7.2006

Репутация: 9
Всего: 23



К примеру если mas[5][4] == 11111111111 то вылет 


--------------------
Мои руки из дуба, голова из свинца ну и пусть ...
PM MAIL   Вверх
_hunter
Дата 28.7.2006, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 16
Всего: 98



оно, вообще-то, даже собираться не должно -- число больше 4294967295 (максимум для 32-х разрядного int' а)
так что указывай компилятор да размер переменной... 


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Romikgy
Дата 28.7.2006, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 8
Всего: 146



видать компилятор юзаешь 16 битный 
имхо я уже давно отказался от использования типа int так как его разрядность зависит от компилятора, что имхо крайне неудобно smile
я использую только 
char
short
long
это для 32 битных и ниже систем 


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1269 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.