【发布时间】:2016-11-17 15:33:00
【问题描述】:
我大约 10 天前开始学习 C,并决定编写一个战舰游戏。 我有一个结构播放器,它有一个二维整数数组作为成员。
struct player{
...
int field[X][Y];...};
在我的例子中,X 和 Y 都是 5。
当我在 main 中创建一个新播放器并调用 print_field(int field[X][Y]) 方法(它只是打印 field 的所有成员)
int main(){
struct player player1;
print_field(player1.field);}
我只是得到一些随机的东西,例如00000
18356276361600061541186983333419528026550
00010
41963970000
04196320041956320
我尝试了类似 malloc 和 calloc 的不同明显方式
player1.field = malloc(sizeof(player1.field));
但我得到不同类型的指针、数组或强制转换异常。
请解释一下它是如何工作的。
【问题讨论】:
-
请显示minimal reproducible example。您没有提供足够的信息。我们只能说:在您没有显示的代码中某处存在错误。
-
player1未初始化,那么您想查看哪些值...? -
注意:C不支持方法,只支持函数。
-
那甚至不会编译。您应该在分配给数组时遇到错误。数组不是指针。
malloc是干什么用的?
标签: c arrays pointers multidimensional-array