• Как поменять код, чтобы при заполнении двумерного массива распознавалась переменная int и не запрашивало указатель?

    by_kapt0xa
    @by_kapt0xa
    Учу кресты катаюсь на велике
    #include <random>
    #include <iostream>
    using namespace std;
    
    void zxc(int* arr, const int row, const int col)
    {
    
    	srand(time(NULL));
    	for (int f = 0; f < row; f++)
    	{
    		for (int j = 0; j < col; j++)
    			arr[f* col + j] = rand() % 10;
    	}
    
    }
    
    void qwe(int* arr, const int row, const int col)
    {
    
    	for (int i = 0; i < col; i++) {
    		for (int f = 0; f < row; f++)
    			cout << arr[f * col + i] << "\t";
    		cout << endl;
    	}
    }
    
    //qwe и zxc это самые удачные названия для функции, из названия сразу ясно что эти функции делают.
    
    int main()
    {
    	const int row = 5;
    	const int col = 7;
    	int arr[row * col];
    	zxc(arr, row, col);
    	qwe(arr, row, col);
    }

    программисты C++ таким не занимаются, это больше похоже на C.
    вот как выглядит нормальный код на C++:
    #include <random>
    #include <iostream>
    #include <vector>
    using namespace std;
    
    void zxc(vector<vector<int>>& arr, const int row, const int col)
    {
    	srand(time(NULL));
    	arr.resize(row);
    	for (auto& line : arr)
    	{
    		line.resize(col);
    		for (auto& x: line)
    		{
    			x = rand() % 10;
    		}
    	}
    
    }
    
    void qwe(const vector<vector<int>>& arr, const int row, const int col)
    {
    	for (const auto& line : arr)
    	{
    		for (const auto& x : line)
    		{
    			cout << x << "\t";
    		}
    		cout << endl;
    	}
    }
    
    int main()
    {
    	const int row = 5;
    	const int col = 7;
    	vector<vector<int>> arr;
    	zxc(arr, row, col);
    	qwe(arr, row, col);
    }

    простые массивы имеют массу неприятностей, связанных с НЕгибкостью кода. если вы пишете на плюсах, познакомьтесь с векторами.
    !!!!!!!!!извиняюсь, предыдущая версия была с ошибками, я отредачил
    Ответ написан
    1 комментарий