c++sizeof返回错误的数组值
c++ sizeof return wrong value of an array
我在学校学习c++,我们使用linux ubuntu。。。我们正在学习oops,在oops中我们现在正在上课。
我有两个文件,主文件名为data.cpp,另一个名为mylib.h
我的data.cpp文件有这样的代码:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
#include "mylib.h"
int main() {
myclass myfile;int i,b=14;// if i change this value its give always me value for 8 in windows and in ubuntu 4
int arr[b];
//for(int i =0;i<b;i++){cout<<"Inserici Il numero : ";cin>>arr[i];}
i = myfile.trovaMax(arr);
cout <<"Arry Size "<<i<<endl;
cout<<endl;
return 0;
}
mylib.h文件包含以下代码:
class myclass{
public:
int trovaMax (int num[]){
int curMax=sizeof(num);
/* for (int i = 0; i<sizeof(num);i++){
for(int j=0;j<i;j++){
if(curMax<num[j]){
curMax=num[j];
}//end if cond
}//end for j loop
}//end for i loop
*/ return curMax;
}
/* int findMinNum (int num[]){
int curMax=99999;
for (int i = 0; i<sizeof(num);i++){
for(int j=0;j<i;j++){
if(curMax>num[j]){
curMax=num[j];
}//end if cond
}//end for j loop
}//end for i loop
return curMax;
}
};
问题:sizeof是我在trovaMax函数中传递的数组的false值。在windows中,总是给我值8(如果我更改data.cpp文件中整数b的值),而在linux中, 现在我在家里用窗户。我使用的程序是dev c++。 注意:我找到了这个问题,我在任何地方都找不到这个问题的答案。
传递给函数的不是数组。你在给它传球。
相关文章:
- 类动态数组错误
- 如何返回多维数组?错误C2440
- 数组错误(不允许类型不完整)
- C++ 将文件读取到数组错误:'operator>>'不匹配
- 不断增加的指针数组 错误:赋值中的类型不兼容
- 从文本文件读取 2D 数组错误
- 动态结构数组错误
- 旋转数组 - 错误
- 按字母顺序排序名称,数组错误
- 因为每个循环都读取数组错误
- 二维数组错误
- C 获取数组错误
- 编译时出现字符串数组错误
- c++2维指针类数组错误(使用openframework)
- C++数组错误
- C++上数组错误的大小
- C++数组错误:访问冲突读取位置0xC0000005
- c++2D数组错误
- C++:为“char [4]”数组错误获取太多初始值设定项
- 分段错误(核心转储)排序字符串数组错误