返回数组中最大元素地址的函数
Function returning an address of the greatest element in the array
不知何故,这段代码不起作用,我得到垃圾数字作为结果。你们能看看吗?
float * greatest(float *elements,int length){
float max=elements[0];int index=0;
for (int i = 1; i < length; i++)
{
if(max<elements[length]){
max = elements[length];
index = length;}
}
return &elements[index];
}
if(max<elements[length]){
将始终返回最后一个元素,因为长度永远不会改变。你想要
if(max<elements[i]){
除了索引错误(elements[length]
而不是elements[i]
),C++已经内置了它,无需重新发明轮子:
#include <algorithm>
//...
float * greatest(float *elements,int length){
return max_element(elements, elements+length);
}
正确的形式是:
float * greatest(float *elements,int length){
float max=elements[0];int index=0;
for (int i = 1; i < length; i++)
{
if(max<elements[i]){
max = elements[i];
index = i;}
}
return &elements[index];
}
相关文章:
- 如何在c++程序中找到函数的地址
- 函数名是c中该函数的第一条指令的地址吗
- 从 C++ 中的函数返回数组地址问题
- 为什么成员函数地址离自由函数这么远?
- 调用 lua 函数的地址为 C/C++?
- 在 Microsoft Access SQL 中调用自定义 DLL 函数时传递的内存地址无效
- 为什么每次执行时函数的地址都不同?
- 我正在尝试将表的地址传递给要在另一个函数中使用的指针,但得到不兼容的指针类型
- 获取函数的地址?
- 模板到函数的时刻地址是否可以作为指向某个函数的函数指针传递?
- 为什么使用存储在虚拟方法表中的地址调用虚拟函数的函数会返回垃圾?
- 指针在函数调用后更改其地址
- 在 gcc/clang (C++) 中获取函数范围之外的标签地址
- 在每个运行时将函数保存到相同的地址
- 在指向现有内存地址的 hpp 文件中声明成员函数的最佳方法
- 创建一个函数来转换数组元素的类型并返回数组的地址
- 如何定义全局函数指针并分配给特定地址
- 常量引用函数参数的地址何时唯一?
- 打印我的Get MAC地址函数的std::字符串时出现意外输出
- 成员函数地址(函数指针)