动态分配一个新的整数数组
Struggling with dynamically allocate a new integer array
我需要将数组传递给一个函数。在函数内,动态分配一个新的整数数组。按照程序语法将原数组中的值以相反的顺序赋值给新数组,这样原数组中的第一个条目将成为新数组中的第五个条目,原数组中的第二个条目将成为新数组中的第四个条目,依此类推。在函数中显示新数组的内容。不要从函数返回新的数组。不要改变原数组的内容。在赋值和显示新数组的内容时,使用指向数组的指针,即使用解引用。动态分配的数组将被删除。
下面是我现在得到的框架工作,但我被难住了,不知道如何进行。
第一个按顺序显示数组,它们在数组中,但我正在努力如何将其传递给另一个函数,然后按反向顺序显示。我想我一度很接近了,但是我越是搞混,我觉得我实际上让事情变得更糟,离我想要完成的目标越来越远。
#include "stdafx.h"
#include <iostream>
using namespace std;
void dispArr(int *, int);
void dispArrRev(int *, int);
void main()
{
int arrA[5] = { 100, 200, 300, 400, 500 };
dispArr(arrA, 5);
dispArrRev(arrA, 5);
system("pause");
return;
}
void dispArr(int *val, int size)
{
for (int x = 0; x < size; x++)
{
cout << x << " = " << *(val + x) << endl;
}
cout << endl;
return;
}
void dispArrRev(int *val, int size) //call by pointer
{
//Stare at white space until light bulb appears :S :|
}
只是一个建议,您可以按原样存储它,但以相反的顺序表示它,例如:
void dispArrRev(int *val, int size)
{
for (int x = size-1; x >0; x--)
{
cout << x << " = " << *(val + x) << endl;
}
cout << endl;
return;
}
如果你必须在函数中分配和释放一个数组,那么你的代码应该是(注意,我没有添加代码来检查new_array是否已经分配):
void dispArrRev(int *val, int size)
{
int *new_array=new int[size];
for (int x = size-1; x >0; x--)
{
new_array[size-x-1]=*(val + x);
}
dispArr(new_array,size);
delete [] new_array;
return;
}
相关文章:
- 从二进制文件中读取整数数组
- 新的整数数组向右移动?
- C++ 中的二维整数数组,每行中的元素数量不均匀
- 给定一个整数数组,需要在Max_Heap上运行操作。得到错误"segmentation fault",有什么想法吗?(C++)
- 为什么在我的 main 函数中声明整数后我的整数数组中会出现错误?
- 在 C++ 中将整数数组转换为位集表示形式的最佳方法?
- 从两个 4x64 位整数数组中获取取模
- 字符到整数数组
- 从函数参数 [C++] 复制整数数组
- 指向整数数组和打印总和的指针
- 使用可变参数函数将整数和/或整数数组放入单个 int 数组中
- 线程安全整数数组?
- 整数数组中最长的回文
- 在大整数数组中查找子数组
- 查找整数数组中最接近的数字
- 创建<int>对整数数组指针的矢量引用 (C++)
- 整数指针数组的元素是否可以指向整数数组?
- 如何将整数数组相乘得到一个数字?
- 当 map 是一个整数数组并且由 operator[] 创建时,它是否初始化其映射类型
- 将文本文件读入整数数组