我是 C++ 新手,希望能帮助解决这个问题。我试过用谷歌搜索示例,但似乎找不到我正在寻找的东西。我有一个为 int 数组分配一些空间的主函数和一个用随机数数组填充该空间的辅助函数(getRandomNumberArray)。
我正在打印在辅助函数中创建的数组,然后将其传输到主函数中分配的内存。我莫名其妙地失去了一堆价值观。
下面的代码输出这个:
95 70 24 40 26 7 84 45 62 13 41 11 21 55 23 50 17 8 76 20 94 25 90 29 95 26 9 44 47 8 61 27 42 10 15 26 53 64 55 906 709 28 72 3 3 33 29 4 65 56 65 12 30 14 59 25 42 69 99 47 2 42 25 80 90 32 51 17 14 74 83 94 34 92 88 51 85 78 71 9 38 54 17 34 48 47 99 48 78
95 70 24 40 26 7 84 45 62 13 41 11 21 55 23 50 17 8 76 20 94 25 90 29 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
如您所见,在某种程度上,值已设置,但随后全为零。知道这里发生了什么以及如何解决吗?
谢谢!
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
void getRandomNumberArray(int *result, int size){
srand(time(0));
int randomNos[100] = {0};
for(int i = 0; i < 100; i++){
randomNos[i] = rand() % 100 + 1;
cout << randomNos[i] << ' ';
}
memcpy(result, randomNos,size);
}
int main() {
int size = 100;
int *randomNumbers = new int[size];
getRandomNumberArray(randomNumbers,size);
cout << "" << endl;
for(int i = 0; i < 100; i++){
cout << randomNumbers[i] << ' ';
}
free(randomNumbers);
return 0;
}