“之前的预期表达式”;[“令牌 #包括 #包括 #包括 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

“之前的预期表达式”;[“令牌 #包括 #包括 #包括 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”数组,则将其设置为

括号就是括号。在C语言中,分组表达式时不使用任何其他类型的括号,因为方括号
[]
和花括号
{}
在语言中有特殊的含义。只需使用括号
()


然后是一些一般提示:对于任何指针或数组
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];