champ_ 2023-08-15 21:14 采纳率: 88.5%
浏览 9
已结题

给malloc开辟的空间赋值,发生错误

结构体中定义一个int *指针
在main函数中 调用结构体指针,用这个指针指向malloc开辟的一片空间
给开辟的空间赋值时,发生错误

typedef struct s
{
    int* data;
    
}S;
int main()
{
    S l;
    l.data = (int*)malloc(40);
    for (int i = 0; i < 10; i++)
    {
        l.data[i] = 0;
    }
    return 0;
}

错误代码为该行:

l.data[i] = 0;

  • 写回答

3条回答 默认 最新

  • Tech Embedded 2023-08-15 22:32
    关注

    img


    试了下没有问题哈

    #include <stdio.h>
    #include <stdlib.h>
    typedef struct s
    {
        int* data;
        
    }S;
    int main()
    {
        S l;
        l.data = (int*)malloc(40);
        for (int i = 0; i < 10; i++)
        {
            l.data[i] = 0;
            printf("l.data[i]=%d\n", l.data[i]);
        }
        return 0;
    }
    
    
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 8月24日
  • 已采纳回答 8月16日
  • 修改了问题 8月15日
  • 创建了问题 8月15日