You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++指针与内存分配相关代码查错:找4处错误实现输出302

目标代码4处错误定位与修正

错误总览

你找到的第1处错误正确,第2处描述不够完整,还存在另外2处内存分配、输出逻辑错误,全部4处错误如下:

  • 错误1:缺少标准输入输出头文件引入,且cout、endl未指定std命名空间
    修复方案:代码开头添加#include <iostream>,所有cout替换为std::cout,endl替换为std::endl
  • 错误2:ptr指针未分配有效内存就进行赋值、解引用操作,且赋值语法错误
    修复方案:两处ptr = int;语法完全不合法,统一替换为ptr = new int;,为指针分配堆上的int类型内存空间
  • 错误3:第一个输出语句逻辑错误,输出了指针地址而非指向的数值
    修复方案:将std::cout << ptr << std::endl;改为std::cout << *ptr << std::endl;,输出ptr指向的数值3
  • 错误4:temp指针未分配内存就赋值、解引用,且赋值类型不匹配
    修复方案:删除temp = x;,先添加temp = new int;为temp分配内存,再写*temp = x;将x的值写入temp指向的内存空间

修正后完整代码

#include <iostream>
int main () {
    int* ptr;
    int* temp;
    int x;
    ptr = new int;
    *ptr = 3;
    std::cout << *ptr << std::endl;
    x = 0;
    temp = new int;
    *temp = x;
    std::cout << *temp << std::endl;
    ptr = new int;
    *ptr = 2;
    std::cout << *ptr - *temp << std::endl;
    // 可选补充:释放堆内存避免泄漏
    delete ptr;
    delete temp;
    return 0;
}

运行说明

修正后代码运行会依次输出3、0、2,三行内容拼接即为要求的“302”效果。

内容的提问来源于stack exchange,提问作者Devin Bowen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 19:15:02