C语言中一维数组到二维数组的转换
我最近编写了以下代码:C语言中一维数组到二维数组的转换,c,C,我最近编写了以下代码: #include <stdio.h> int main() { int **x; int arr[] = {1,2,3,4,5}; x = (int**)arr; } #包括 int main() { 整数**x; int arr[]={1,2,3,4,5}; x=(int**)arr; } 如何使用x打印arr的内容?还要解释如何将1D数组转换为2D数组?1)您试图执行的操作不正确。您必须使用int* #include <stdio.h
#include <stdio.h>
int main()
{
int **x;
int arr[] = {1,2,3,4,5};
x = (int**)arr;
}
#包括
int main()
{
整数**x;
int arr[]={1,2,3,4,5};
x=(int**)arr;
}
如何使用x打印arr的内容?还要解释如何将1D数组转换为2D数组?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
}
#包括
int main()
{
int*x;
int arr[]={1,2,3,4,5};
x=arr;
//你必须做什么
}
2) 对于数组转换,我想这毫无意义 该代码已被破坏。请显示到目前为止您的研究/调试工作。请先阅读第页。您可以将1D数组转换为2D数组,但这很危险,因为您更改了访问大量字节的方式。如果你做得不正确,它将导致未定义的行为。而且,用奇数的数据做这件事是不可能的。我知道我所做的没有任何意义。但这并不是不正确的,因为代码编译时没有警告。我的疑问是1D指针如何转换成2D指针。如果你的意思是如何转换:操作
int**x=(int**)arr代码>在语法上是正确的。您将获得指向int
指针的int
指针或(更容易理解的)int[][]