将 Int 指针分配给 double 变量
Posted
技术标签:
【中文标题】将 Int 指针分配给 double 变量【英文标题】:Assigning an Int pointer to a double variable 【发布时间】:2017-02-13 00:52:19 【问题描述】:我想要一个指向双精度的 Int 指针,但收到以下错误:“无法在赋值中将 'double*' 转换为 'int*'”
假设我们有:
double myVar1;
int *myPointer1 = new int;
myPointer = &myVar1; (cannot convert 'double*' to 'int*' in assignment error)
如何修复我的代码?我不能将指针设为“double”,因为这是针对学校作业的,而且我被特别要求使用这些数据类型。
【问题讨论】:
你确定这是你应该做的作业吗? 1) 你不能那样做。 2)你的代码存在内存泄漏(new
没有对应的delete
,new
返回的指针丢失)。
我不确定,这不会是第一次在家庭作业中出现拼写错误。为了完成任务,我只是将指针设置为双精度。在我的代码中,我确实有相应的删除。
【参考方案1】:
你可以写:
int *myPointer1 = reinterpret_cast<int *>(&myVar1);
但是,使用此指针尝试访问 double
将是 undefined behaviour。所以没有任何理由写这段代码。
【讨论】:
以上是关于将 Int 指针分配给 double 变量的主要内容,如果未能解决你的问题,请参考以下文章