2016-08-03 97 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 [] []' –