C++ 如何将double*值分配给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存储新分配的内存地址。新运算符用于此目的,它将返回必要的指针,您只需正确地执行动态内存分配。是否要为指针变量分配

我想将整数1分配给双*队列[I]。。我需要先将int 1转换为double*类型值,然后才能将其分配给队列[I]。。如何编写此代码

我想将整数1分配给双*队列[I]

我想您是想将值1添加到队列中:

队列[i]=新的double1.0

分配直接地址是另一种方式

我需要先将int 1转换为double*类型值,然后才能 将其分配给队列[i]


这不是动态队列的工作方式。它为每一个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转换为双*。请阅读