【发布时间】:2016-06-22 10:23:44
【问题描述】:
如何转换初始化的 int 2d 数组,如下所示:
int 2darray[9][9];
进入一个 void * 然后再次回到一个二维数组。这个给我一个不兼容的指针类型错误
int **sub = *((int **)2darray);
【问题讨论】:
-
可能是
int darray[9][9];void *sub = darray;int **subInt = (int **)sub;AFAIK,变量不能以数字开头。它总是一个字符或 $ 或 _ -
我实际上是在像这样的 pthread_create(&column, NULL, columncheck, (void*)darray); 传递一个 pthread。但是当我做这样的事情时它给了我一个分段错误: printf("%d ", subInt[0][0]);
-
可能不是转换问题。你能分享整个代码来检查问题吗?因为由于某些核心转储而发生分段错误。可能是对地址的无效访问(由于也没有正确初始化指针)。
-
我刚刚决定使用 malloc 之前对我有用的方法。 Patrick Trentin 说我不能将 ponter 投射回数组。
标签: multidimensional-array casting int void