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

C++指针赋值报incompatible integer to pointer conversion错误如何解决

报错原因

报错触发自代码nbSpace = *nbTrades + *nbGround;行,原因是类型不匹配:

  • *nbTrades、*nbGround是对指针做解引用操作,拿到的是两个int类型的数值31和24,相加结果仍为int类型的55
  • 左侧的nbSpace是int*类型的指针变量,C++不允许直接把int数值赋值给指针变量,因此抛出整数转指针不兼容的报错。
正确实现方法

要让nbSpace指向的值为55,需要先为nbSpace分配对应的int类型堆内存,再对其指向的内存空间赋值,正确代码如下:

#include <iostream>
using namespace std;

int main() { 
    int* nbGround = nullptr;
    int* nbTrades = nullptr;
    int* nbSpace = nullptr;
    
    nbGround = new int(24);
    nbTrades = new int(31);
    // 为nbSpace分配int大小的堆内存
    nbSpace = new int;
    // 解引用后给nbSpace指向的内存赋值
    *nbSpace = *nbTrades + *nbGround; 
    
    cout << "Number of spaces for sale  : " << *nbSpace << endl;
    delete nbSpace;
    delete nbTrades;
    delete nbGround;
    return 0;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 09:57:04