C++ 如何将double*值分配给double*队列[i]?
我想将整数1分配给双*队列[I]。。我需要先将int 1转换为double*类型值,然后才能将其分配给队列[I]。。如何编写此代码 我想将整数1分配给双*队列[I] 我想您是想将值1添加到队列中: 队列[i]=新的double1.0 分配直接地址是另一种方式 我需要先将int 1转换为double*类型值,然后才能 将其分配给队列[i]C++ 如何将double*值分配给double*队列[i]?,c++,pointers,types,variable-assignment,C++,Pointers,Types,Variable Assignment,我想将整数1分配给双*队列[I]。。我需要先将int 1转换为double*类型值,然后才能将其分配给队列[I]。。如何编写此代码 我想将整数1分配给双*队列[I] 我想您是想将值1添加到队列中: 队列[i]=新的double1.0 分配直接地址是另一种方式 我需要先将int 1转换为double*类型值,然后才能 将其分配给队列[i] 这不是动态队列的工作方式。它为每一个double存储新分配的内存地址。新运算符用于此目的,它将返回必要的指针,您只需正确地执行动态内存分配。是否要为指针变量分配
这不是动态队列的工作方式。它为每一个double存储新分配的内存地址。新运算符用于此目的,它将返回必要的指针,您只需正确地执行动态内存分配。是否要为指针变量分配直接地址?最好在已知函数或变量上使用&运算符或+,++运算符来获取地址。这是不安全的,不建议在代码中硬编码地址。每次将程序加载到内存中时,它可能是不同的内存空间,因此硬编码地址将导致分段错误 请参见下面的示例。不建议队列[1]分配或队列[2]分配
#include <stdio.h>
#define MAX_SIZE 10
void print(double *p, int i)
{
printf("queue[%d]=%p\t*queue[%d]=%.2f\n", i, p, i, *p);
}
int main()
{
double *queue[MAX_SIZE];
double dval = 3.5f;
int ival = 1;
queue[0] = &dval;
print(queue[0], 0);
// queue[0]=0x7ffee2bfca20 *queue[0]=3.50
queue[1] = &ival;
print(queue[1], 1);
// queue[1]=0x7ffee2bfca1c *queue[1]=0.00
queue[2] = ((double *)1);
print(queue[2], 2);
// zsh: segmentation fault
return 0;
}
欢迎来到堆栈溢出。请阅读,带上SO,阅读,以及。最后,请学习如何创建一个您自己的尝试,以及您的问题,以显示它与问题的详细描述,只要描述您试图解决的问题。您不能将1转换为双*。请阅读