“之前的预期表达式”;[“令牌 #包括 #包括 #包括 int main() { int i,j; 双xcord[201],ycord[201]; 双*a,*b; 浮动delx,dely; double*phi=(double*)malloc(201*201*sizeof(double)); double*r=(double*)malloc(201*201*sizeof(double)); delx=0.005; dely=0.005; a=xcord; b=xcord; 对于(i=1;i
括号就是括号。在C语言中,分组表达式时不使用任何其他类型的括号,因为方括号“之前的预期表达式”;[“令牌 #包括 #包括 #包括 int main() { int i,j; 双xcord[201],ycord[201]; 双*a,*b; 浮动delx,dely; double*phi=(double*)malloc(201*201*sizeof(double)); double*r=(double*)malloc(201*201*sizeof(double)); delx=0.005; dely=0.005; a=xcord; b=xcord; 对于(i=1;i,c,C,括号就是括号。在C语言中,分组表达式时不使用任何其他类型的括号,因为方括号[]和花括号{}在语言中有特殊的含义。只需使用括号() 然后是一些一般提示:对于任何指针或数组p和索引i,表达式*(p+i)相当于p[i]。后者通常更易于阅读和理解,这意味着它也更易于维护。请注意p可以是生成指针(或数组)的任何表达式,和i可以是生成非负整数的任何表达式 此外,如果您的代码中有一个静态大小的“数组”,例如phi,请将其声明为数组。这也将使其更易于理解和维护。如果phi是一个所谓的“2d”数组,则将其设置为
[]
和花括号{}
在语言中有特殊的含义。只需使用括号()
然后是一些一般提示:对于任何指针或数组
p
和索引i
,表达式*(p+i)
相当于p[i]
。后者通常更易于阅读和理解,这意味着它也更易于维护。请注意p
可以是生成指针(或数组)的任何表达式,和i
可以是生成非负整数的任何表达式
此外,如果您的代码中有一个静态大小的“数组”,例如phi
,请将其声明为数组。这也将使其更易于理解和维护。如果phi
是一个所谓的“2d”数组,则将其设置为数组:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main()
{
int i,j;
double xcord[201], ycord[201];
double *a,*b;
float delx,dely;
double *phi = (double *)malloc(201 *201* sizeof(double));
double *r = (double *)malloc(201 *201* sizeof(double));
delx=0.005;
dely=0.005;
a=xcord;
b=xcord;
for(i=1;i<=201;i++)//grid generation
{
xcord[i]=-0.5+0.005*(i-1);
ycord[i]=-0.5+0.005*(i-1);
}
for(i=1;i<=201;i++)
{
for(j=1;j<=201;j++)
{
printf("%f %f\n",xcord[i],ycord[j]);
}
}
for(i=1;i<=201;i++)//phi value calculation
{
for(j=1;j<=201;j++)
{
/* Next 2 lines are highlighted */
*(r + (i-1)*201+ (j-1))=1500*[{(*(a+(i-1))+0.25)*(*(a+(i-1))+0.25)}+{(*(b+(j-1)))*(*(b+(j-1)))};
*(phi + (i-1)*201+ (j-1))=5*exp (*(r + (i-1)*201+ (j-1)));
}
}
for(i=1;i<=201;i++)
{
for(j=1;j<=201;j++)
{
printf("%f \n",*(phi + (i-1)*201+ (j-1)));
}
}
return 0;
}
这一点尤其重要,因为您实际上不会释放分配的内存。在这种情况下效果很好,因为您退出程序,这在大多数系统上意味着分配的内存将自动释放,但养成释放分配内存的习惯将省去您的麻烦。使用数组不需要o免费提供任何东西
最后,在C语言中,您不应强制转换malloc
(或任何返回void*
的函数)的结果。请参阅。请正确格式化您的代码。提交前请检查“预览”区域。此外,您还应发布您的确切代码。在起始行***(r
我不确定这些星星是否是代码的一部分…它不是我的代码的一部分。我试图突出显示堆栈溢出中的问题行,它们显示为**。查看那一行,编译器错误只是您的第一个问题。这是为了解决问题吗?
double phi[201][201];