int sizex = 3;
int sizey = 3;
int * grid;
grid = new int [sizex][sizey]; // Line 6
grid = {{0}};
我试图在这里声明一个数组,但编译器说
 Â第6行:错误:在'='æ ‡è®°
之å‰çš„é¢„æœŸæž„é€ å‡½æ•°ï¼Œæžæž„函数或类型转æ¢
ä½ èƒ½å¸®æˆ‘å¼„æ˜Žç™½ä¸ºä»€ä¹ˆå—?
ç”案 0 :(得分:4)
å› ä¸ºè¯æ³•é”™è¯¯ã€‚é‚£ä¸æ˜¯ä½ 分é…内å˜çš„æ–¹å¼ã€‚
å¦‚æžœä½ æƒ³è¦ä¸€ä¸ªçŸ©é˜µï¼Œä½ å¯èƒ½æƒ³è¦
int** grid;
ä½ å¯ä»¥åƒè¿™æ ·åˆ†é…内å˜ï¼š
grid = new int*[sizex];
for ( int i = 0 ; i < sizex ; i++ )
grid[i] = new int[sizey];
æ¤å¤–,在您为grid = {{0}};
分é…内å˜åŽï¼Œä½œä¸šgrid
并没有多大æ„义。
ä¸è¦å¿˜è®°åˆ 除内å˜ã€‚
ç”案 1 :(得分:1)
æ£å¦‚Luchianå’ŒMark Bå·²ç»è¯´è¿‡çš„é‚£æ ·ï¼Œä½¿ç”¨new
æ¥åˆ›å»º2D数组是ä¸æ£ç¡®çš„。
如果è¦åˆå§‹åŒ–æ‰€æœ‰å…ƒç´ ï¼Œè¯·ä½¿ç”¨ä»¥ä¸‹æž„é€ ï¼š
grid = new int*[sizex];
for (int i = 0 ; i < sizex ; i++)
grid[i] = new int[sizey]();
//^^
è¿™ä¼šå°†å…ƒç´ åˆå§‹åŒ–为零。
ä½ ä¸èƒ½ä½¿ç”¨ï¼š
grid = {{0}};
用于赋值:{}
åªèƒ½åœ¨åˆå§‹åŒ–时使用。
ç”案 2 :(得分:0)
您ä¸èƒ½ä½¿ç”¨è¯¥è¯æ³•åœ¨C ++ä¸ç›´æŽ¥åˆ›å»º2d数组。虽然您å¯ä»¥ä½¿ç”¨æ³¨é‡Šï¼ˆint (*p)[6] = new int[3][6];
)ä¸æ到的有些模糊的è¯æ³•ï¼Œä½†æˆ‘ä¸å»ºè®®è¿™æ ·åšï¼Œå› 为它å¯èƒ½ä¼šä½¿ä»£ç 过于å¤æ‚。
相åï¼Œä½ æƒ³è¦çš„是矢é‡çŸ¢é‡ã€‚使用vectoræœ‰æ•ˆåœ°ç®€åŒ–äº†ä½ çš„å†…å˜ç®¡ç†ï¼Œå› 为C ++ä¸æ˜¯åžƒåœ¾æ”¶é›†ã€‚
std::vector<std::vector<int> > grid(sizex, std::vector<int>(sizey));
ç”案 3 :(得分:0)
int main(){
int** grid;
int sizex = 5;
int sizey = 5;
grid = new int*[sizex];
for ( int i = 0 ; i < sizex ; i++ )
grid[i] = new int[sizey];
// ... a lot of code
// .. deleting:
for ( int i = 0 ; i < sizex ; i++ )
delete [] grid[i];
delete [] grid;
}