第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

2D數(shù)組到指針到指針的轉(zhuǎn)換

2D數(shù)組到指針到指針的轉(zhuǎn)換

C++
牛魔王的故事 2019-11-18 10:39:24
Activity solution[a][b];...Activity **mother = solution;我想將2D對象數(shù)組轉(zhuǎn)換為指針到指針。我怎樣才能做到這一點;我在Google上搜索了它。但是我只找到一個維數(shù)組的例子。
查看完整描述

3 回答

?
呼如林

TA貢獻1798條經(jīng)驗 獲得超3個贊

單純的轉(zhuǎn)換對您無濟于事。2D數(shù)組類型和指針到指針類型之間沒有任何兼容性。這樣的轉(zhuǎn)換是沒有意義的。


如果確實需要這樣做,則必須引入一個額外的中間“行索引”數(shù)組,該數(shù)組將彌合2D數(shù)組語義和指針對指針語義之間的鴻溝


Activity solution[a][b];


Activity *solution_rows[a] = { solution[0], solution[1] /* and so on */ };


Activity **mother = solution_rows;

現(xiàn)在訪問mother[i][j]將使您可以訪問solution[i][j]。


查看完整回答
反對 回復(fù) 2019-11-18
?
長風(fēng)秋雁

TA貢獻1757條經(jīng)驗 獲得超7個贊

您可以對一維數(shù)組而不是二維數(shù)組執(zhí)行此操作的原因與實際數(shù)組元素在內(nèi)存中的存儲方式有關(guān)。對于一維數(shù)組,所有元素都是連續(xù)存儲的,因此表達式array[i]等同于expression *(array + i)。如您所見,執(zhí)行數(shù)組索引操作不需要數(shù)組大小。但是,對于二維數(shù)組,元素以“行主要”順序存儲,這意味著第零行中的所有元素都將首先存儲,然后是第一行中的元素,然后是第二行中的元素。 ,等等。因此,表達式array[i][j]等于*(array + (i * ROW_SIZE) + j),其中ROW_SIZE是每行中元素的數(shù)量。因此,執(zhí)行數(shù)組索引操作需要數(shù)組的行大小,并且將數(shù)組變量強制轉(zhuǎn)換為指針會丟失該信息。


查看完整回答
反對 回復(fù) 2019-11-18
?
哆啦的時光機

TA貢獻1779條經(jīng)驗 獲得超6個贊

我想將2D對象數(shù)組轉(zhuǎn)換為指針到指針。我怎樣才能做到這一點?


為什么?是否因為接口需要指向指針的指針?


如果是這樣,則需要創(chuàng)建一個包含這些指針的新數(shù)組。


Activity solution[a][b];


Activity* solutionPtrs[a];

for (int i = 0; i < a; ++i)

    solutionPtrs[a] = solution[a];


Activity** mother = solutionPtrs;

您為什么不能僅將Tto轉(zhuǎn)換為2D數(shù)組T**?好吧,因為他們彼此無關(guān)!


您可以將a強制轉(zhuǎn)換T[a]為a,T*因為您可以獲得指向數(shù)組第一個元素的指針。


您也可以使用2D數(shù)組來執(zhí)行此操作,但是如果使用a T[a][b]則它會衰減為a,(T[b])*因為2D數(shù)組不是指針數(shù)組,而是數(shù)組數(shù)組。


查看完整回答
反對 回復(fù) 2019-11-18
  • 3 回答
  • 0 關(guān)注
  • 392 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號