qq_43412960 2019-12-20 14:28 采纳率: 76.9%
浏览 755
已采纳

结构体指针的内容赋值相关问题

int main()
{

int a=1;
int *b;
typedef struct  
{

int no;
char nn;
}L;
 L  *LL;
LL->no=1;
printf("%d",LL->no);







getch();


return 0;
}

这是我写的代码,代码没有报错,为什么运行的时候会溢出呢?

  • 写回答

2条回答 默认 最新

  • qtchen_1988 2019-12-20 16:55
    关注

    动态内存没分配;

     L  *LL;
     改成
     L *LL = (L *)malloc(sizeof(L));
    

    全部代码:

    #include<stdio.h>
    #include<stdlib.h>
    #include<conio.h>
    #include<malloc.h>
    
    int main()
    {
        typedef struct
        {
            int no;
            char nn;
        }L;
        L *LL = (L *)malloc(sizeof(L));
        LL->no=1;
        printf("%d",LL->no);
        free(LL);
        LL = NULL;
        getch();
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • 转瞬即失 2019-12-20 21:39
    关注

    用“->”,要声明一个结构体的指针,还要手动开辟一个该结构体的内存,然后把返回的指针给声明的结构体指针,才能用“->”正确引用。
    否则内存中只分配了指针的内存,没有分配结构体的内存,导致想要的结构体实际上是不存在。这时候用“->”引用自然出错了,因为没有结构体,自然没有结构体的域了。

    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 请教如何为VS2022搭建 Debug|win32的openCV环境?
  • ¥15 关于#c++#的问题:c++如何使用websocketpp实现websocket接口调用,求示例代码和相关资料
  • ¥15 51单片机的外部中断,按下按键后不能切换到另一个模式
  • ¥15 java连接sqlserver有问题
  • ¥15 yolov8 如何调cfg参数
  • ¥15 这个四人抢答器代码哪儿有问题?仿真程序怎么写?
  • ¥15 burpsuite密码爆破
  • ¥15 关于#ubuntu#的问题,如何解决?(相关搜索:移动硬盘)
  • ¥15 scikit安装之后import不了
  • ¥15 Ros2编译一个使用opencv的c++节点的时候,报了这个错误,请问怎么解决啊