在打印出动态分配的数组中的前两个数字时遇到问题,其他数字工作正常
Having trouble printing out the first two numbers in a dynamically allocated array, the other numbers work fine
#include <iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
int* randomNumbers(int min, int max, int size);
int main()
{
int min = 20;
int max = 100;
int size = 10;
int* nums;
nums = randomNumbers(min,max,size);
cout << "***************"<<endl;
for(int i = 0; i < size;i++)
{
cout << *(nums+i) << endl;
}
return 0;
}
int* randomNumbers(int min, int max, int size)
{
int* random = new int[size];
unsigned seed = time(0); //time elapsed since Jan 1, 1970
srand(seed);
for (int i = 0;i<size;i++)
{
*(random+i) = rand() % ((max+1)-min) + min;
cout<<*(random+i)<<" ";
}
cout<<endl;
delete[] random;
return random;
}
因此,如果我在 Xcode(Macbook( 中运行此代码,它可以完美运行,但是如果我在 Codeblocks(Windows( 中运行它,从 main 函数打印的前两个数字是百万,但从 randomNumbers(( 打印的前两个数字在预期范围内。我不明白为什么在 main 函数中打印数字会更改前两个值?其余的都很好。我真的口齿不清,请随时就我的问题提问。
delete[] random;
return random;
您正在删除阵列!
删除数组后对阵列的任何访问都是未定义的。 完成后清理阵列。
将删除移至此处:
for(int i = 0; i < size;i++)
{
cout << *(nums+i) << endl;
}
delete[] nums;
return 0;
相关文章:
- C++问题:用户认为数字1-100,程序提出问题不超过6次即可得到答案。无法正确
- 输出错误,问题是找到总和5000位数字cpp
- 使用 BMI 计算器对C++中的数字进行四舍五入的问题
- 遇到此问题时遇到困难:允许用户输入数组的值并使用 for,而循环也输出输入的最大数字
- 我的问题是关于C++中数字和序列的重复以及如何打印它们?
- 如何通过使用 2 位或更多数字的 XOR 运算符来执行此操作C++问题
- 在 cpp 中使用较大数字时遇到大数字的问题<iomanip>
- 无法理解代码背后的逻辑,这是在两个给定数字之间生成素数的优化问题
- 数组C++问题中最大和第二大的数字
- 使用用户定义的函数查找数字的幂时出现问题
- C++ - 我在输出时遇到问题,因为我正在收到数字和字母
- C++ 制作一个随机数字/字母生成器,代码中有问题
- 有问题将数字转换为罗马数字
- 使用C ,将转换为char的问题始终具有3位数字
- 优化递归问题以计算超级数字
- 快速读取带有数字 c++ 的二进制文件时出现问题
- 代码问题.使用矢量删除相同的数字,除了它的最后一个入口
- 编程:原理与实践 使用C++ 第 4 章演练步骤 6:关于数字范围的一般问题
- 在C++中使用限制和非常大的数字时出现问题
- C++//数字问题