[問題] const 二維指標陣列參數傳遞問題
這問題是在他版論壇裡,獲得原提問允許,轉至本版,
想請教各位先進、版大,對於此問題看法如何 (應有得討論),
不是很會敘述, 請看程式碼
---------
#include <string.h>
class Object{
public:
int value;
};
void f1( const Object * const obj[6] ){}
void f2( const Object * const obj[6][6]){}
int main()
{
Object *obj1[6];
f1( obj1 );
/* L1 */
// Visual C++ - error C2664:
// 無法將參數 1 從 'Object *[6][6]' 轉換成 'const Object *const [][6]
Object *obj2[6][6];
f2(obj2);
/* L2 - I know it's error...*/
typedef const Object* pObj[6][6];
f2((pObj)obj2);
/* L3 */
const Object *tmp[6][6];
memcpy(tmp, obj2, sizeof(Object)*36);
f2(tmp);
return 0;
}
-------
L1 的部份是錯誤訊息, 我模糊了為何不能過,
改成 const Object *obj2[6][6] 確實可以,
但以為 non-const 可以丟給 const做傳遞動作。
L2 部份是我的 trying,
我其實是想再 typedef pObj 成 const obj* [6][6],
再強制轉型, 這部份不知該如何下手
L3 這是原提問者用的想法、概念 (code依概念寫的)
想請問這問題,在不動 f2 情況下,obj2 該怎麼丟到 f2 執行?
謝謝各位不吝指教, 感激不盡!
--
YouLoveMe() ? LetItBe() : LetMeFree();
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 180.177.78.41
→
07/28 19:06, , 1F
07/28 19:06, 1F
→
07/28 19:09, , 2F
07/28 19:09, 2F
→
07/28 19:11, , 3F
07/28 19:11, 3F
→
07/28 21:48, , 4F
07/28 21:48, 4F
→
07/28 21:50, , 5F
07/28 21:50, 5F
→
07/28 21:55, , 6F
07/28 21:55, 6F
→
07/29 02:57, , 7F
07/29 02:57, 7F
→
07/29 03:27, , 8F
07/29 03:27, 8F
→
07/29 03:37, , 9F
07/29 03:37, 9F
→
07/29 03:55, , 10F
07/29 03:55, 10F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章