【发布时间】:2021-06-11 12:09:22
【问题描述】:
我是一名 C++ 初学者,最近发现制作自己的函数和库。所以我想我会把图书馆作为一个项目。我在其中实现了一个函数,它返回数组中元素的数量。但正如我在大多数网站上发现的那样,并根据我自己的理解,使用“sizeof(array) / sizeof(array[0]);”工作......但不适合我。我有一个包含 5 个元素的数组,编译器给出输出“1”。以下是两个文件的代码:
Main.cxx:
#include <iostream>
#include "SML"
using namespace std;
int main() {
int arr[] = {10, 20, 30, 40, 50};
cout << Int.countof(arr) << endl;
return 0;
}
SML(标题):
// SMLlib:
// Simple Math Library for C++
// Created by Saadat Khurshid
// integer functions
class Int {
public:
// int array count
int countof(int arr[]) {
int count = sizeof(arr) / sizeof(arr[0]);
return count;
}
};
// Making object of Int class
Int Int;
注意:我正在使用基于 clang 的 Cxxdroid android 编译器。在 PC IDE 上运行的所有功能都适用于它(当然除了一些仅限 Windows 的库)。
【问题讨论】:
-
不是或不是,无论如何,这是对观察到的症状的极其模糊和糟糕的描述。
-
这能回答你的问题吗? C sizeof a passed array
-
@Yksisarvinen 在正常情况下这是一个很好的副本,但是 op 函数是查找数组的大小,所有答案都指向一个简单的解决方案,即传递大小作为参数,即不会是一个非常有用的功能。
标签: c++ arrays function file header