【问题标题】:Structure pointer declared in function函数中声明的结构指针
【发布时间】:2013-03-20 17:05:44
【问题描述】:

这是对我不起作用的部分代码。我声明了一个指向结构的指针,并尝试在函数上使用它,尽管 c 表示它不能将主要人物转换为人物。

void display (char *s2,FILE *f1,int max);
void insert (FILE  *f1, struct person *p1);
void deletestring (FILE *f1,FILE *f2,char *s2,char *s1,char *file1,char *file2,int max);
void edit (FILE *f1,FILE *f2,char *s2,char *s1,char *file1,char *file2,struct person *p1,int max);
int main ()
{
    char s1[MAX],s2[MAX];
    FILE *f2,*f1;
    struct person
    {
           char id[MIN];
           char emer[MIN];
           char mbiemer[MIN];
           };
    struct person p1;
    struct person *pp1;
    pp1 = &p1;
    char *file1 = "f1.txt";
    char *file2 = "f2.txt";

    int zgjedhja=1;
    printf("Programi funksionon sipas shpjegimit \n :");
    printf("Shtypni 1 per te shtuar nje person \n Shtypni 2 per te ndryshuar informacionin e nje personi \n Shtypni 3 per te shfaqur te dhenat \n Shtypni 4 per te fshire nje person \n Shtypni -1 per te dale nga programi \n ");

    while (zgjedhja != -1 )
    {
          printf("Jepni zgjedhjen tuaj \n ");
          scanf(" %d " , & zgjedhja );
          switch (zgjedhja)
          {
                 case 1:      
                 f1=fopen(file1,"a");
                 insert (f1,pp1);

【问题讨论】:

    标签: c function pointers structure


    【解决方案1】:

    struct person 类型具有main 作用域,因此它在insert 中的含义不同。事实上,没有指定成员的结构类型称为不完整类型。要消除此错误,请在函数之外声明结构。

    struct person
    {
        /* ... */
    };
    
    /* Function declarations. */
    
    int main (void)
    {
        /* ... */
    }
    

    【讨论】:

    • 效果很好。谢谢 7 分钟,直到您获得正确答案奖:P。
    猜你喜欢
    • 1970-01-01
    • 2021-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-30
    • 1970-01-01
    相关资源
    最近更新 更多