柒seven. 2024-07-18 17:34 采纳率: 100%
浏览 3
已结题

vc2010结构体数组

在vc2010里使用结构体数组时报错,在在线编译器上是没有问题的
1>structure.c(35): error C2440: “初始化”: 无法从“student”转换为“char”
1>structure.c(35): error C2440: “初始化”: 无法从“student”转换为“char”
1>structure.c(35): error C2440: “初始化”: 无法从“student”转换为“char”
完整代码如下

#include<stdio.h>
#include<string.h>
struct student
    {
        char name[100];
        int age;
    };
int main()
    {
    struct student st1 = {"张三",18};
    struct student st2 = {"李四",19};    
    struct student st3 = {"王五",20};
    struct student strArr[3] = {st1,st2,st3};
    int i;
    for(i=0;i<3;i++)
    {
        printf("学生的名字为:%s;学生的年龄为:%d\n",strArr[i].name,strArr[i].age);
    
    }
    return 0;
}

  • 写回答

3条回答 默认 最新

  • 阿里嘎多学长 2024-07-18 17:44
    关注

    以下内容由AIGC及阿里嘎多学长共同生成、有用望采纳:


    你的代码在 Visual C++ 2010 中遇到的问题可能是由于编译器对结构体初始化的处理方式不同导致的。在你的代码中,你尝试直接将三个 struct student 对象初始化到一个数组中,这在某些编译器中可能会引发类型不匹配的错误。

    解决方案

    1. 检查编译器设置:确保 Visual C++ 2010 的编译器设置没有限制或错误地处理了结构体初始化。你可以尝试清理项目并重新编译。

    2. 修改代码:你可以尝试使用不同的初始化方式。一种常见的方法是使用指针数组来间接初始化结构体数组。

    以下是修改后的代码:

    #include<stdio.h>
    #include<string.h>
    
    struct student
    {
        char name[100];
        int age;
    };
    
    int main()
    {
        struct student st1 = {"张三", 18};
        struct student st2 = {"李四", 19};
        struct student st3 = {"王五", 20};
    
        struct student *strArr[3] = {&st1, &st2, &st3};
        int i;
        for(i = 0; i < 3; i++)
        {
            printf("学生的名字为:%s;学生的年龄为:%d\n", strArr[i]->name, strArr[i]->age);
        }
        return 0;
    }
    

    在这个修改后的代码中,我们使用指针数组 strArr 来存储指向 struct student 对象的指针。这样,初始化时就不会引发类型不匹配的错误。

    测试代码

    在 Visual C++ 2010 中重新编译和测试代码,确保所有功能正常工作。

    其他建议

    • 确保你的代码风格一致,例如在初始化时使用 {} 而不是 =
    • 检查编译器的警告和错误信息,确保没有其他潜在的问题。

    通过这些步骤,你应该能够解决在 Visual C++ 2010 中遇到的编译问题,并确保你的代码可以在该编译器中正确运行。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月18日
  • 已采纳回答 7月18日
  • 创建了问题 7月18日

悬赏问题

  • ¥15 气象网格数据与卫星轨道数据如何匹配
  • ¥100 java ee ssm项目 悬赏,感兴趣直接联系我
  • ¥15 微软账户问题不小心注销了好像
  • ¥15 x264库中预测模式字IPM、运动向量差MVD、量化后的DCT系数的位置
  • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
  • ¥20 关于web前端如何播放二次加密m3u8视频的问题
  • ¥15 使用百度地图api 位置函数报错?
  • ¥15 metamask如何添加TRON自定义网络
  • ¥66 关于川崎机器人调速问题
  • ¥15 winFrom界面无法打开