C ++打印数组结果

时间:2020-05-11 01:22:09

标签: c++ xcode

我能够解决一些错误。现在我刚得到3。
1.控制到达}之前非空函数的结尾 void displayIntegerArray(int *arrayPtr,int arraySize)函数。
2. delete[];处的期望表达式。
3. return 0;处的期望表达式。

#include <iostream>    
#include <iomanip>   

using namespace std;

// Function prototypes
void populateIntegerArray(int *arrayPtr, int arraySize);
void displayIntegerArray(int *arrayPtr, int arraySize);
void findMaximumInteger(int *arrayPtr, int arraySize);

//method to populate array
void populateIntegerArray(int *arrayPtr,int arraySize)
{
   for(int i=0;i<arraySize;i++)
   {
       cout<<"Enter value for array element:"<<i<<":";
       cin>>arrayPtr[i]; //reading value
   }
}

void findMaximumInteger(int *arrayPtr,int arraySize)
{
   int maximum = arrayPtr[0];
    {
   for(int i=0;i<arraySize;i++)
   {
       if(maximum<arrayPtr[i])maximum=arrayPtr[i];
   }
   cout<<"Maximum integer in array is: "<<maximum<<endl;
    }
}

    void displayIntegerArray(int *arrayPtr,int arraySize)
    {
       for(int i=0;i<arraySize;i++)
       {
       cout<<&arrayPtr[i]<<": arrayPtr["<<i<<"] = "<<setw(15)<<arrayPtr[i]<<endl;

    }
}

int main()
{
    int arraySize;

   // Read array size
   cout<<"Enter desired array size:";
   cin>>arraySize;

   // Print array
   cout<<"arrayPtr = "<<arraySize<<endl;
   populateIntegerArray( arrayPtr,  arraySize);
   displayIntegerArray(arrayPtr,  arraySize);
   findMaximumInteger( arrayPtr, arraySize);
   cout<<"DELETING array at arrayPtr = "<<arrayPtr<<endl;
   delete[];
   return 0;
}

2 个答案:

答案 0 :(得分:0)

在主要功能中:

有一个未声明的变量; rangedReduceSum。 因此,您必须对其进行声明并为其动态分配内存。

arrayPtr

您还必须向int* arrPtr = new int[arraySize]; 操作员提供delete [],以释放分配的内存。

最后的主要功能将是这样:

arrayPtr

答案 1 :(得分:-2)

所以我的程序有些不正确的地方,但是主要是由于您没有在主目录中创建arrayPtr。如果您不创建指向某个内存块的东西,那么您的程序将不会知道该数组在哪里。 https://www.cplusplus.com/doc/tutorial/pointers/

下一个问题是,因为您从未创建指向内存的指针,所以您也忘记为内存创建空间。如果每次程序运行时数组的大小都相同并且大小相当小,则可以只在堆栈上分配空间。但是,您不需要这样做,因此需要动态分配内存。这意味着您需要向操作系统询问内存,然后找回其位置。可以使用new[]运算符来完成。然后,当您完成内存使用后,您便告诉程序使用delete[]运算符对其进行取消分配。 (如果您不这样做,那么尽管程序结束,内存仍将被标记为已使用。这称为内存泄漏。) https://www.cplusplus.com/doc/tutorial/dynamic/

接下来,您实际上将不会显示数组的位置。您要打印新的arrayPtr变量以查看位置。

最后,您的帖子很难处理。格式有点不稳定,这使其很难阅读。幸运的是,您的程序非常简单,以至于无需花太多时间阅读并找出问题所在。但是,随着您的程序变得越来越复杂和庞大,许多人将不愿意浏览您的整个程序并为您查找错误。尝试缩小您认为错误来自何处并发布的范围:一些上下文,相关的代码块以及确切的错误消息。

相关问题