编辑:如果我试图在没有全局或静态且没有矢量或动态矢量的情况下进行操作怎么办?
我正在尝试创建两个向量并有一个函数通过地址传递一个新向量,该向量是两个数组的每个元素的商。即 V1 是 1 1 2 2 3 4 V2 是 2 2 1 1 2 2 预期的结果是 2 2 2 2 6 8
我的问题是当我从“quoziente”函数发送“r”结果时,因为我收到了随机数。我认为问题在于该函数仅在执行期间存在,但是当它停止运行时,它也会随着他的变量而死。我应该怎么做?我确定我将正确的地址传递给“ris”。我什至尝试打印出操作的元素,我确信我正在做正确的操作。非常感谢任何帮助!谢谢
这是代码:
1 #include <iostream>
2 using namespace std;
3
4
5
6 void readarray (int* v, int dim) {
7 for(int i=0; i<dim; i++) {
8 cin >> v[i];
9 }
10 }
11
12 void printarray(int* v, int dim) {
13 for(int i=0; i<dim; i++) {
14 cout << v[i] << " ";
15 }
16 cout << endl;
17 }
18
19 int main() {
20 int v1[7];
21 int v2[7];
22 int *ris;
23
24 cout << "V1";
25 readarray(v1,7);
26 cout << "V2";
27 readarray(v2,7);
28 ris = quoziente(v1,v2,7);
29 cout << "V1";
30 printarray(v1,7);
31 cout << "V2";
32 printarray(v2,7);
33 cout << "ris ";
34 printarray(ris,7);
35
36 return 0;
37 }
38
39 int* quoziente (int* v1, int* v2, int dim) {
40 int r[7];
41
42 for(int i=0; i<dim; i++) {
43 r[i] = v1[i] * v2[i];
44 cout << r[i] << " ";
45 }
46 cout << endl;
47 return r;
48 }