2016-08-03 63 views
-1

我最近寫了下面的代碼:轉換維數組二維數組用C

#include <stdio.h> 
int main() 
{ 
    int **x; 
    int arr[] = {1,2,3,4,5}; 
    x = (int**)arr; 
} 

我如何打印的內容改編用x?還解釋一維數組如何轉換爲二維數組?

+0

該代碼已損壞。 – melpomene

+0

到目前爲止請顯示您的研究/調試工作。請先閱讀[問]頁面。 –

+0

您可以將一維數組轉換爲二維數組,但它很危險,因爲您改變了如何訪問大量的字節。如果你做得不對,會導致未定義的行爲。另外,用奇數的數據做這件事情根本不可能。 – Garf365

回答

1

1)你想要做的是不正確的。你必須使用一個int *

#include <stdio.h> 

int main() 
{ 
    int *x; 
    int arr[] = {1,2,3,4,5}; 
    x = arr; 

    //do what do you have to do 

} 

2)對於數組轉換我想這是沒有意義的。

+0

我知道我所做的沒有任何意義。但是,代碼編譯時沒有警告,這並不正確。我懷疑如何將一維指針轉換爲二維指針。 –

+0

如果你指的是如何完成這個轉換:操作'int ** x =(int **)arr;'在句法上是正確的。你將獲得一個int指針指向int指針或(更容易理解)一個int [] []' –