小熊饼干iiii 2021-08-21 22:03 采纳率: 50%
浏览 46
已结题

自定义一个复数结构体 assign()是赋值函数 主函数里对*z1,*z2两个指针进行assign()赋值操作,通过打印可以看出z2被成功赋值,z1却没有被成功赋值

自定义一个复数结构体
assign()是赋值函数
主函数里对z1,z2两个指针进行assign()赋值操作,通过打印可以看出z2被成功赋值,z1却没有被成功赋值
不明白为何


#include <stdio.h>

typedef struct complex
{
    float realpart;
    float imagpart;
} complex;

void assign(complex *a, float real, float imag)
{
    a->realpart = real;
    a->imagpart = imag;
};

int main()
{
    complex *z2, *z1;
    float real2 = 3.5, image2 = 6.7;
    assign(z2, real2, image2);
    printf("z2:%f,%f\n", z2->realpart, z2->imagpart);
    float real1 = 2.3, image1 = 4.8;
    assign(z1, real1, image1);
    printf("z1:%f,%f\n", z1->realpart, z1->imagpart);
    return 0;
}
  • 写回答

1条回答 默认 最新

  • 关注

    你没有为*z2, *z1分配指向的空间地址啊
    引入#include <stdlib.h>

        complex *z2, *z1;
        //为*z2, *z1分配指向的空间地址
        z2 = (complex *)malloc(sizeof(complex));
        z1 = (complex *)malloc(sizeof(complex));
    
    
    

    你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)

    #include <stdio.h>
    #include <stdlib.h>
    
    typedef struct complex
    {
        float realpart;
        float imagpart;
    } complex;
    void assign(complex *a, float real, float imag)
    {
        a->realpart = real;
        a->imagpart = imag;
    };
    int main()
    {
        complex *z2, *z1;
        //为*z2, *z1分配指向的空间地址
        z2 = (complex *)malloc(sizeof(complex));
        z1 = (complex *)malloc(sizeof(complex));
        float real2 = 3.5, image2 = 6.7;
        assign(z2, real2, image2);
        printf("z2:%f,%f\n", z2->realpart, z2->imagpart);
        float real1 = 2.3, image1 = 4.8;
        assign(z1, real1, image1);
        printf("z1:%f,%f\n", z1->realpart, z1->imagpart);
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 8月30日
  • 已采纳回答 8月22日
  • 创建了问题 8月21日

悬赏问题

  • ¥20 unity实习让我做一个程序
  • ¥15 idea tomcat和sql驱动不匹配吗
  • ¥15 如何查看h3c 5130s-28f-si交换机配置 及更改网口
  • ¥15 HFSS仿真喇叭天线阵列方向图出现异常
  • ¥15 blender自发光强度
  • ¥15 FIR滤波器算法设计与实现(利用库函数firdec()
  • ¥15 利用单片机产生正弦信号,来测量差分放大电路放大倍数和共模放大倍数的思路和仿真
  • ¥60 关于mavlink的论文咨询
  • ¥66 定制开发肯德基自动化网站下单软件
  • ¥15 中科院研发的TextMind(文心)