小熊饼干iiii 2021-08-21 22:03 采纳率: 100%
浏览 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 win10商店接入问题
    • ¥15 java 这种树形框吗
    • ¥40 找同学帮敲Python代码
    • ¥15 MYSQL 订单的商品明细重复计算问题
    • ¥15 微信实时共享位置修改
    • ¥100 TG的session协议号转成直登号号后客户端登录几分钟后自动退出设备
    • ¥50 共模反馈回路的小信号增益
    • ¥15 arduino ssd1306函数与tone函数放歌代码不兼容问题
    • ¥70 0.96版本hbase的row_key里含有双引号,无法deleteall
    • ¥15 诊断性META分析合并效能的检验