Size: a a a

2021 March 02

CS

Corvus Sanguinem in supapro.cxx
Corvus Sanguinem
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>

#define clear system("cls");
#define press_key int i; cin >> i;

using namespace std;

int getrand(int min, int max){
   static const double fraction = 1.0 / (static_cast<double>(RAND_MAX) + 1.0);
   return static_cast<int>(rand() * fraction * (max - min + 1) + min);
}

class mines {
public:
   int** show_grid;
   bool** mines_grid;
   int size;
   mines(int s){
       size = s;
   }
   void setgrid() {
       mines_grid = new bool* [size];
       for (int i = 0; i < size; i++) {
           mines_grid[i] = new bool[size];
       }
       for (int i = 0; i < size; i++) {
           for (int k = 0; k < size; k++) {
               mines_grid[i][k] = 0;
           }
       }
       int countmines = 0;
       while (countmines <= 10) {
           int x_pos = getrand(0, size - 1);
           int y_pos = getrand(0, size - 1);
           if (mines_grid[x_pos][y_pos] == 1)
               continue;
           mines_grid[x_pos][y_pos] = 1;
           countmines++;
       }
       for (int i = 0; i < size; i++) {
           for (int k = 0; k < size; k++) {
               cout << setw(4) << mines_grid[i][k];
           }
           cout << endl << endl;
       }
   }

   int checkpos(int x, int y) {
       int ret = 0;
       if (mines_grid[x][y])
           return 9;
       for (int i = x - 1; i <= x + 1; i++) {
           for (int k = y - 1; k <= y + 1; k++) {
               if (mines_grid[i][k])
                   ret++;
           }
       }
       return ret;
   }

   void showgrid() {
       show_grid = new int* [size];
       for (int i = 0; i < size; i++) {
           show_grid[i] = new int[size];
       }
       for (int i = 0; i < size; i++) {
           for (int k = 0; k < size; k++) {
               show_grid[i][k] = 0;
           }
       }
       for (int i = 0; i < size; i++) {
           for (int k = 0; k < size; k++) {
               show_grid[i][k] = checkpos(i, k);
           }
       }
   }
};
int main()
{
   mines a(10);
   a.setgrid();
   press_key
   clear
   a.showgrid();
}
Выдает ошибку доступа
источник

LC

Love Sosa Chief keef in supapro.cxx
Всем добрый вечер не подскажите почему программа не хочет комплеироваться при отсутвии ошибок проблема в строчке

strcpy(sentecsice2, sentecsice);


код до
char *sentecsice = new char[255];
   cin >> sentecsice;
   char *sentecsice2 = new char[strlen(sentecsice) + 1];
источник

КМ

Костя Мальованик... in supapro.cxx
Stepan
Заголовочные файлы предоставляют интерфейс, собранная библиотека - реализацию
Так не получается, за подключение хедера не ругается компилятор(так как я указал где искать), а вот методы не могу испльзовать. Я меня в солюшене несколько проектов, один из них к примеру ExampleProject, в нём куча разных классов, CMake мне сбилдила либу только ExampleProject.lib и obj тех классов что были. Я думаю проблема в том что вот эта эдинственная либа не предоставляет реализацию
источник

AS

Anatoly Shirokov in supapro.cxx
Corvus Sanguinem
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>

#define clear system("cls");
#define press_key int i; cin >> i;

using namespace std;

int getrand(int min, int max){
   static const double fraction = 1.0 / (static_cast<double>(RAND_MAX) + 1.0);
   return static_cast<int>(rand() * fraction * (max - min + 1) + min);
}

class mines {
public:
   int** show_grid;
   bool** mines_grid;
   int size;
   mines(int s){
       size = s;
   }
   void setgrid() {
       mines_grid = new bool* [size];
       for (int i = 0; i < size; i++) {
           mines_grid[i] = new bool[size];
       }
       for (int i = 0; i < size; i++) {
           for (int k = 0; k < size; k++) {
               mines_grid[i][k] = 0;
           }
       }
       int countmines = 0;
       while (countmines <= 10) {
           int x_pos = getrand(0, size - 1);
           int y_pos = getrand(0, size - 1);
           if (mines_grid[x_pos][y_pos] == 1)
               continue;
           mines_grid[x_pos][y_pos] = 1;
           countmines++;
       }
       for (int i = 0; i < size; i++) {
           for (int k = 0; k < size; k++) {
               cout << setw(4) << mines_grid[i][k];
           }
           cout << endl << endl;
       }
   }

   int checkpos(int x, int y) {
       int ret = 0;
       if (mines_grid[x][y])
           return 9;
       for (int i = x - 1; i <= x + 1; i++) {
           for (int k = y - 1; k <= y + 1; k++) {
               if (mines_grid[i][k])
                   ret++;
           }
       }
       return ret;
   }

   void showgrid() {
       show_grid = new int* [size];
       for (int i = 0; i < size; i++) {
           show_grid[i] = new int[size];
       }
       for (int i = 0; i < size; i++) {
           for (int k = 0; k < size; k++) {
               show_grid[i][k] = 0;
           }
       }
       for (int i = 0; i < size; i++) {
           for (int k = 0; k < size; k++) {
               show_grid[i][k] = checkpos(i, k);
           }
       }
   }
};
int main()
{
   mines a(10);
   a.setgrid();
   press_key
   clear
   a.showgrid();
}
ну как вот эту портянку читать? есть внешние сервисы по типу pastebin, куда можно закинуть код
источник

AS

Anatoly Shirokov in supapro.cxx
здесь можно только иллюстрировать до 10-15 строк кода
источник

AS

Anatoly Shirokov in supapro.cxx
все остальное публикуйте на внешних ресурсах
источник

S

Stepan in supapro.cxx
Костя Мальованик
Так не получается, за подключение хедера не ругается компилятор(так как я указал где искать), а вот методы не могу испльзовать. Я меня в солюшене несколько проектов, один из них к примеру ExampleProject, в нём куча разных классов, CMake мне сбилдила либу только ExampleProject.lib и obj тех классов что были. Я думаю проблема в том что вот эта эдинственная либа не предоставляет реализацию
Каков информационный объём *.lib?
источник

CC

Coccine Coccine in supapro.cxx
Love Sosa Chief keef
Всем добрый вечер не подскажите почему программа не хочет комплеироваться при отсутвии ошибок проблема в строчке

strcpy(sentecsice2, sentecsice);


код до
char *sentecsice = new char[255];
   cin >> sentecsice;
   char *sentecsice2 = new char[strlen(sentecsice) + 1];
все должно компилиться
источник

NM

Nastya Medveda in supapro.cxx
Добрый день, в чем причина иметь два способа приведения типов: через int(value) и через static_cast<int>(value) в с++?
источник

DP

Denis Paukaev in supapro.cxx
Nastya Medveda
Добрый день, в чем причина иметь два способа приведения типов: через int(value) и через static_cast<int>(value) в с++?
первый из С пришёл, в С++ его не надо использовать
источник

CC

Coccine Coccine in supapro.cxx
Nastya Medveda
Добрый день, в чем причина иметь два способа приведения типов: через int(value) и через static_cast<int>(value) в с++?
метод приведения типов в стиле языка C не делает проверки типов на совместимость
источник

BH

Blue Heart in supapro.cxx
Nastya Medveda
Добрый день, в чем причина иметь два способа приведения типов: через int(value) и через static_cast<int>(value) в с++?
Если первый способ — это (int)value, то он из Си.
источник

NM

Nastya Medveda in supapro.cxx
Denis Paukaev
первый из С пришёл, в С++ его не надо использовать
Прата пишет что из Си пришел (int)value, а int(value) - pure c++
источник

Е

Егор in supapro.cxx
Nastya Medveda
Добрый день, в чем причина иметь два способа приведения типов: через int(value) и через static_cast<int>(value) в с++?
в комитете просто любят делать много путей сделать одно и то же
источник

S

Stepan in supapro.cxx
Nastya Medveda
Прата пишет что из Си пришел (int)value, а int(value) - pure c++
Да, в C нельзя int(v)
источник

DP

Denis Paukaev in supapro.cxx
да, посмотрел, в С такое не работает и правда
источник

S

Stepan in supapro.cxx
Все написано верно
источник

DP

Denis Paukaev in supapro.cxx
я всё равно советую писать статик каст)
источник

NM

Nastya Medveda in supapro.cxx
в итоге есть два pure C++  способа приведения. При том, что вводить способ int(value) и советовать им не пользоваться — довольно странное решение.
источник

А

Андрей in supapro.cxx
Nastya Medveda
в итоге есть два pure C++  способа приведения. При том, что вводить способ int(value) и советовать им не пользоваться — довольно странное решение.
Если он применяется для встроенных типов то можно
источник