Size: a a a

2020 July 18

IZ

Ilia Zviagin in supapro.cxx
Марсианин🛸🚀
Здравствуйте подскажите пж почему вс ругается?   ``` const int a = 100 , b = 100;
   int arr[a][b];
   int n, m;
   cin >> n >> m;
   for (int i = 0; i < n; i++) {
       for (int k = 0; k < m; k++) {
           cin >> arr[i][k];
       }
   } ```Состояние подавления
Предупреждение  C6262  Функция использует "40024" байт в стеке:  это превышает значение /analyze:stacksize"16384". Попробуйте переместить некоторые данные в кучу.
Сделай массив твой в статичной памяти, global, или global static переменную используй.

Другой вариант - настроить размер стека чуть больше.
источник

IZ

Ilia Zviagin in supapro.cxx
Артём Колпаков
Подскажите, почему pure virtual func с определением не заносится в VTABLE?
Заносится.
источник

🎄T

🎄🎊 R 🎅 Tb| ✡️ 🎊🎄... in supapro.cxx
Ilia Zviagin
Сделай массив твой в статичной памяти, global, или global static переменную используй.

Другой вариант - настроить размер стека чуть больше.
Никого не смущает что там VLA 🤔
источник

IZ

Ilia Zviagin in supapro.cxx
Александр Караев
Для абстрактного класса vtable вообще не обязана генерироваться. А если генерируется, зачем в ней pure virtual функция?
Ты неправ
источник

IZ

Ilia Zviagin in supapro.cxx
🎄🎊 R 🎅 Tb| ✡️ 🎊🎄
Никого не смущает что там VLA 🤔
Блин, профукал!
источник

PS

Philipp Silver in supapro.cxx
Марсианин🛸🚀
Здравствуйте подскажите пж почему вс ругается?   ``` const int a = 100 , b = 100;
   int arr[a][b];
   int n, m;
   cin >> n >> m;
   for (int i = 0; i < n; i++) {
       for (int k = 0; k < m; k++) {
           cin >> arr[i][k];
       }
   } ```Состояние подавления
Предупреждение  C6262  Функция использует "40024" байт в стеке:  это превышает значение /analyze:stacksize"16384". Попробуйте переместить некоторые данные в кучу.
Если вводишь значение больше чем 100
источник

🎄T

🎄🎊 R 🎅 Tb| ✡️ 🎊🎄... in supapro.cxx
Александр Караев
Скорее всего для него func() - не то же, что и Base::func(). Компилятор видит func() как явное намерение сходить в виртуальную таблицу, а дальше ничего не может доказать, так как ломается на чисто виртуальной функции :)
Во время конструирования объекта разве есть vtable
источник

АК

Артём Колпаков... in supapro.cxx
Ilia Zviagin
Заносится.
Прошу прощения, но в коде, что я скинул (godbolt) занесено __cxa_pure_virtual
источник

IZ

Ilia Zviagin in supapro.cxx
Марсианин🛸🚀
Здравствуйте подскажите пж почему вс ругается?   ``` const int a = 100 , b = 100;
   int arr[a][b];
   int n, m;
   cin >> n >> m;
   for (int i = 0; i < n; i++) {
       for (int k = 0; k < m; k++) {
           cin >> arr[i][k];
       }
   } ```Состояние подавления
Предупреждение  C6262  Функция использует "40024" байт в стеке:  это превышает значение /analyze:stacksize"16384". Попробуйте переместить некоторые данные в кучу.
Убери расширения GCC, выключи. Не используй vla
источник

IZ

Ilia Zviagin in supapro.cxx
Артём Колпаков
Прошу прощения, но в коде, что я скинул (godbolt) занесено __cxa_pure_virtual
Ну так а что это ?
источник

АК

Артём Колпаков... in supapro.cxx
Я полагаю заглушка, а не адрес функции
источник

IZ

Ilia Zviagin in supapro.cxx
Артём Колпаков
Для полиморфных вызовов из конструктора базового класса, например. Просто разбирал кейс, статически вызвать - нет проблем, но indirect нельзя. Вот и захотел узнать мотивацию. Похоже дело в отсутствии генерации vtable, раз вы так утверждаете.
Что значит индирект?
источник

АК

Артём Колпаков... in supapro.cxx
Ilia Zviagin
Что значит индирект?
Как я и скинул, вызов виртуальной функции из не виртуальной, к примеру
источник

IZ

Ilia Zviagin in supapro.cxx
Артём Колпаков
Я полагаю заглушка, а не адрес функции
Ну, а как ты это определишь?
Pure virtual - это тоже какая-то заглушка, генерируемая компилятором
источник

IZ

Ilia Zviagin in supapro.cxx
Артём Колпаков
Я полагаю заглушка, а не адрес функции
Напиши свое тело для абстрактной функции, и погляди, что будет в виртуальной таблице, она или не она
источник

АК

Артём Колпаков... in supapro.cxx
Ilia Zviagin
Ну, а как ты это определишь?
Pure virtual - это тоже какая-то заглушка, генерируемая компилятором
Что-то я не могу вас понять, для реализованных функций там их адрес, например Derived::func()
источник

АК

Артём Колпаков... in supapro.cxx
Ilia Zviagin
Напиши свое тело для абстрактной функции, и погляди, что будет в виртуальной таблице, она или не она
Так я код скинул, нет там её адреса
источник

IZ

Ilia Zviagin in supapro.cxx
Артём Колпаков
Как я и скинул, вызов виртуальной функции из не виртуальной, к примеру
Это обычный вызов, ничего там индирект нету
источник

IZ

Ilia Zviagin in supapro.cxx
Артём Колпаков
Так я код скинул, нет там её адреса
Сейчас посмотрю
источник

АК

Александр Караев... in supapro.cxx
Ilia Zviagin
Ты неправ
Поясни
источник