qq_50508673 2020-10-19 16:01 采纳率: 0%
浏览 3160

警告 C6001 使用未初始化的内存“*head”。 这个提示是为什么啊?

警告 C6001 使用未初始化的内存“*head”。

#include
#include
#include
#include
using namespace std;

typedef struct list {
int number;
struct list* next;
}list;

void build(list* head,int n) {
list* p,* rear = head;
for (int i = 0; i < n; i++) {
list* p = new list;
cin >> p->number;
p = p->next;
rear = p;
}
rear->next = NULL;
}

int main() {
list* head = new list;
list* p = head->next;
int n,m,flag;
cin >> n;
build(head, n);
while (n > 0) {
cout << p->number;
p = p->next;
}

}

这个报错是为什么啊。。。。。想了好久想不明白。。。。。

  • 写回答

1条回答 默认 最新

  • 泡视界 2020-10-20 09:47
    关注

    你这写法很有问题啊朋友。
    首先你改改main,这里先只说main的问题

    int main() {
    list* head = new list;
    list* p = head->next;   //这句好好想想
    int n,m,flag;
    cin >> n;
    

    你新建了一个头节点,还没给他初始化, 怎么就用指针p指向头节点的next了呢?
    你参考一下代码好好想想

    int main() {
    list* head = new list;
    head->next =nullptr;
    
    list* node1 = new list;  
    head->next = node1;
    
    list* p = head->next;
    
    int n,m,flag;
    cin >> n;
    
    
    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料