Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C语言中一维数组到二维数组的转换_C - Fatal编程技术网

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[][]