#include <iostream>
使用 命名空間 std.com.cn>。
int main() {
int* nbGround = nullptr;
int* nbTrades = nullptr;
int* nbSpace = nullptr;
nbGround = new int(24)。
nbTrades = new int(31)。
nbSpace = *nbTrades *nbGround;
cout << "出售的空間數量 : " << *nbSpace << endl;
delete nbSpace。
delete nbTrades;
delete nbGround;
我想知道為什么我不能添加指標?我想通過使用指標使nbSpace等于55,但我不知道怎么做。我得到的錯誤是:
不兼容的整數到指標轉換,從'int'分配到'int *'
uj5u.com熱心網友回復:
首先,這個:
*nbTrades *nbGround
不是 "添加指標"。相反,兩個指標被取消參考,兩個ints被添加。
然后,你試圖將結果(一個int)分配給一個指標:
nbSpace = *nbTrades *nbGround;
這沒有意義。可能你忘了另一個*:
*nbSpace = *nbTrades *nbGround;
這將解除所有三個指標的參考,添加兩個int,并將結果分配給一個int。我說 "會",因為*nbSpace是未定義的,因為它只是一個沒有指向有效int的指標。
我想這只是為了練習,因為這里沒有理由使用任何指標。這就是如何以最小的改動使你的代碼作業:
#include <iostream>
int main() {
int* nbGround = new int(24)。
int* nbTrades = new int(31)。
int* nbSpace = new int(0)。
*nbSpace = *nbTrades *nbGround;
std::cout << "出售的空間數量 : " << *nbSpace << std::endl;
delete nbSpace。
delete nbTrades;
delete nbGround;
}
uj5u.com熱心網友回復:
#include <iostream>
使用 命名空間 std.com.cn>。
int main() {
int* nbGround = nullptr;
int* nbTrades = nullptr;
int nbSpace;
nbGround = new int(24)。
nbTrades = new int(31)。
nbSpace = *nbTrades *nbGround;
cout << "出售的空間數量 : " << nbSpace << endl;
delete nbTrades。
delete nbGround;
}
不清楚為什么你在這里需要指標,但你得到的錯誤是由于試圖將一個int(加法的結果)分配給一個int pointer造成的。如果你把它變成一個普通的int(對代碼的其他部分做一些必要的修改),它就能正常運行。再一次,在這段代碼中,你似乎根本不需要指標。
uj5u.com熱心網友回復:
你需要像這樣將結果存盤在被nbSpace指向的整數中:
//首先為結果分配空間。
nbSpace = new int(0)。
*nbSpace = *nbTrades *nbGround。
否則,你要將指標的值設定為整數的總和。換句話說,nbSpace指的是指標,而*nbSpace指的是被nbSpace指向的整數值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/315475.html
標籤:
上一篇:值沒有被分配給連續的地址
下一篇:何時使用&或不使用?
