将 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没有对应的deletenew返回的指针丢失)。 我不确定,这不会是第一次在家庭作业中出现拼写错误。为了完成任务,我只是将指针设置为双精度。在我的代码中,我确实有相应的删除。 【参考方案1】:

你可以写:

int *myPointer1 = reinterpret_cast<int *>(&myVar1);

但是,使用此指针尝试访问 double 将是 undefined behaviour。所以没有任何理由写这段代码。

【讨论】:

以上是关于将 Int 指针分配给 double 变量的主要内容,如果未能解决你的问题,请参考以下文章

将 int ** 分配给 int 指针

将 int[][] 分配给 int** [重复]

将 const int 分配给指向 int 的 const 指针是非法的吗?

java数据类型

将 *array 分配给指针

结构体变量 和 结构体指针