【发布时间】:2016-03-04 17:05:45
【问题描述】:
我想问一个问题:我想写一个可以传递数组的函数,然后该函数可以从用户那里读取值并填充数组。
但实际上在每个新问题中我都有不同类型的数组。有时它是 int,有时它也可能是 long unsigned。
所以我写了这样的代码:
#include <iostream>
#define MY_TYPE long long
using namespace std;
void f(MY_TYPE a[ ], MY_TYPE min, MY_TYPE max)
{
MY_TYPE i;
for(i = min; i < max; i++)
cin>>a[i];
}
int main()
{
int x [5], i;
f ( (MY_TYPE*) x,(MY_TYPE) 0,(MY_TYPE) 5);
for(i=0;i<5;i++) cout<< x[i];
}
但是当我想运行它时,在输入五个值后,我得到一个运行时错误。它不会在屏幕上打印任何内容。我该如何解决?或者还有其他方法吗?任何帮助将不胜感激..谢谢
【问题讨论】:
-
也许你应该了解 C++ 模板。但不太确定你在问什么。
-
强行将
int x[5];转换为long long*会使您的行为未定义。 -
非常感谢大家...感谢大家的帮助
标签: c++ arrays function pointers