Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何构造指向结构的指针数组并将值赋给所创建的结构_C++_Arrays_Pointers_Struct - Fatal编程技术网

C++ 如何构造指向结构的指针数组并将值赋给所创建的结构

C++ 如何构造指向结构的指针数组并将值赋给所创建的结构,c++,arrays,pointers,struct,C++,Arrays,Pointers,Struct,我正在尝试创建具有以下结构的指针数组: struct No { int decimal; char *binary; char *octal; char *hexadecimal; }; 我有两个函数来构造数组并打印数组: void constructArray (No *Number, int size) { No **temp = new No *[size]; for (int i = 0; i < size; i++) {

我正在尝试创建具有以下结构的指针数组:

struct No {
    int decimal;
    char *binary;
    char *octal;
    char *hexadecimal;
};
我有两个函数来构造数组并打印数组:

void constructArray (No *Number, int size) {
    No **temp = new No *[size];

    for (int i = 0; i < size; i++)
    {
        temp[i]->decimal = rand() % 1000;
        temp[i]->binary = "0";
        temp[i]->octal = "0";
        temp[i]->hexadecimal = "0";
    }
}

void printArray (No *Number, int size) {
    cout << "Decimal\t" << "Binary\t\t\t" << "Octal\t\t" << "Hexadecimal" << endl;
    No **temp = new No *[size];

    for (int i = 0; i < size; i++) {
        cout << temp[i]->decimal << "\t"
            << temp[i]->binary << "\t\t\t"
            << temp[i]->octal << "\t\t"
            << temp[i]->hexadecimal << endl;
    }
}

程序已成功编译并运行,但未输出任何内容。我的代码有什么问题?这里初始化数组的方式是否有问题?我怎样才能克服这个问题?提前非常感谢您的帮助。

我认为您的意图需要在您已经知道的地方添加一行

for (int i = 0; i < size; i++)
{
    temp[i]->decimal = rand() % 1000;
for(int i=0;i十进制=兰德()%1000;
你应该

for (int i = 0; i < size; i++)
{
    temp[i] = new No;
    temp[i]->decimal = rand() % 1000;
for(int i=0;i十进制=兰德()%1000;

constructArray
中,您在那里更新了
编号
?您正在泄漏大量内存,您是否有可能来自Java背景?为什么使用C标记?@SouravGhosh我看到了您的评论,这就是为什么要澄清:)没有输出?或者seg错误?您在
constructArray
中有一个非常明显的错误,应该是错误的t、 您分配一个指针数组,但不分配指向它们的结构,也不初始化这些指针。然后,您将数据存储到这些未初始化指针指向的任何位置。您是否尝试调试应用程序?调试器允许您单步执行代码,然后您将能够看到出现了什么问题。Google'debugging'int main(){No*number;int size=(rand()%9)+1;constructArray(number,size);您需要将number设置为某个值。例如number=New No;您的“No”类将需要一个构造函数来初始化其中的所有成员数据。
for (int i = 0; i < size; i++)
{
    temp[i] = new No;
    temp[i]->decimal = rand() % 1000;