【发布时间】:2010-09-29 04:37:39
【问题描述】:
代码中有一个指向数组的指针,即 NameList。我希望将 Pointer(NameList) 中每个数组的内容一一打印出来。下面的代码无法完成任务。请。帮助。
int Data1[] = {10,10};
int Data2[] = {20,20};
int Data3[] = {30,30};
int *NameList[] = {Data1, Data2, Data3};
main()
{ Function(NameList); }
Function(int *ArrayPointer)
{
int i, j, index=0;
for (i=0; i < 3; i++)
{
for (j=0; j < 2; j++)
{
//It does not print the data
printf("\nName: %s", ArrayPointer[index++]);
}
index=0; //Counter reset to 0
ArrayPointer++; //Pointer is incremented by one to pick next array in the pointer
}
}
print("code sample");
问题原始海报的另一条注释:
我在 Turbo C 中完成了一个吃豆人游戏。我正在完善一些图形例程,以便可以轻松地再次重复使用它。这只是为了帮助和理解概念而创建的一个小样本。代码中的所有数据实际上都是精灵的字符数组。现在我只想调用一个传递指针的函数,以便将指针中的每个数组都绘制到屏幕上。如何修改此代码以处理此问题?我居然卡在这里了。
【问题讨论】:
-
你为什么回滚我的提交?我添加了适当的标签(C 和 C++),并通过将源代码放在 Markdown 的“代码标签”下来使源代码可读......
-
我没有回滚,但我确实重新格式化了。
-
可能涉及到错误吗?如果他在您重新标记时对其进行了编辑,那么他所做的更改可能会自动恢复您的更改?
-
我也遇到了这种情况,被 OP 分心并抱怨 :)
-
您应该收到将 NameList 传递给 ArrayPointer 的警告:NameList 是一个 int 指针指针值,因此 ArrayPointer 应该是一个 int 指针指针,而不是一个 int 指针。或者你应该调用 Function(*NameList),而不是 Function(NameList)。