【发布时间】:2015-04-17 15:23:55
【问题描述】:
我是一年级学生,我从事 C 编程。请不要对我这么刻薄。
您能否展示如何在函数中使用和编写多维数组?
我研究了数组和函数 arg 输入。
我读到第一个维度对编译器来说并不重要。它检查数组中的第二个和更多维度,因此您必须在函数中指定它才能使其工作。
我尝试了不同的数组组合以使其工作,但没有找到解决方案。
我的代码有一小段:
int size=5,location_x=10,location_y=10,s=NULL,l_x, l_y, status=2;
int stage_3(float[][int],int [],int [],int []);
int main()
{
float location[l_x][l_y];
int x[size], y[size], z[size];
if(!stage_3(location[l_x][l_y],x[size],y[size],z[size]))
return 0;
}
int stage_3(float location[][int l_y],int x[size],int y[size],int wt[size])
{
return 0;
}
13|错误:'int'之前的预期表达式
13|错误:在 'int' 之前需要 ';'、',' 或 ')'
我知道问题在于那些 [][]。它们不是常数。 该程序将它们作为变量,您可以通过 scanf 在可访问范围内随意选择,以获得更大的灵活性。
【问题讨论】:
-
c 中的选项很少,您可以使用
malloc()并动态分配数组,或者您可以执行int stage_3(size_t size, size_t l_y, float location[][l_y], int x[size], int y[size], int wt[size])之类的操作 -
@iharob 所以你想说如果我做 malloc(location[l_x][l_y]) 它将初始化内存块,你只需在任何函数的任何地方使用?
-
不,这是不正确的,由于您是初学者,因此您必须避免使用
malloc(),因此很难理解指针的确切工作原理,而且对于malloc(),您必须承担新的责任,@ 987654326@malloc()ed 块。 -
很抱歉我这么笨。但我不明白这些内存块是如何工作的。我将 size_t 用于字符串,并且还有指针。我需要使用指针吗?天哪,我看起来有那么愚蠢吗...
-
不,你只是一个随机菜鸟,做一个没关系,不要担心,避免指点,直到你觉得你真的理解 i> 所有其他概念。