Mam ten kod, w którym chcę utworzyć dynamiczną tablicę 2-d z wartościami n x 5 -
int** bump = new int*[b_bump_num];
for(int i = 0; i < b_bump_num; i++) {
bump[i] = new int[5];
}
for(int i = 0; i < b_bump_num; i++) {
delete[] bump[i];
}
delete[] bump;
Ale mam do czynienia z tym błędem -
*błąd:Wyrażenia muszą zawierać typy wskaźników — trzecia ostatnia linia — bump[i]
1 odpowiedź
To może być wszystko, czego potrzebujesz -
Podejście 1: Korzystanie z prostej tablicy 2D
#include <iostream>
using namespace std;
int main()
{
int dimension1, dimension2 = 5;
cout << "Enter first dimension : " << endl;
cin >> dimension1;
// dynamic allocation
int** array2d = new int*[dimension1];
for(int i = 0; i < dimension1; ++i)
array2d[i] = new int[dimension2];
/*
// you may fill it with your values
for(int i = 0; i < dimension1; ++i)
for(int j = 0; j < dimension2; ++j)
array2d[i][j] = i;
*/
// print
for(int i = 0; i < dimension1; ++i) {
for(int j = 0; j < dimension2; ++j) {
cout << array2d[i][j] << " ";
}
cout << endl;
}
// free
for(int i = 0; i < dimension1; ++i)
delete [] array2d[i];
delete [] array2d;
return 0;
}
Przykładowe wyjście:
Enter first dimension :
4
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
Podejście 2: Korzystanie z wektorów —
#include <iostream>
#include <vector>
using namespace std;
int main()
{
// size of row
int rowSize;
int colSize = 5;
cout << "Enter row size : ";
cin >> rowSize;
// Create a vector of vector with size equal to rowSize; filled with 0.
vector<vector<int>> vec(rowSize, vector<int>(colSize));
for (int i = 0; i < rowSize; i++) {
for (int j = 0; j < vec[i].size(); j++)
cout << vec[i][j] << " ";
cout << endl;
}
vec.clear();
return 0;
}
Przykładowe wyjście:
Enter row size : 3
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
Podobne pytania
Nowe pytania
c++
C ++ to język programowania ogólnego przeznaczenia. Pierwotnie został zaprojektowany jako rozszerzenie C i ma podobną składnię, ale teraz jest to zupełnie inny język. Użyj tego tagu w przypadku pytań dotyczących kodu (który ma zostać) skompilowany za pomocą kompilatora C ++. Użyj znacznika specyficznego dla wersji w przypadku pytań związanych z określoną wersją standardu [C ++ 11], [C ++ 14], [C ++ 17], [C ++ 20] lub [C ++ 23] itp. .