c++sizeof返回错误的数组值

c++ sizeof return wrong value of an array

本文关键字:数组 错误 返回 c++sizeof      更新时间:2023-10-16

我在学校学习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++。

注意:我找到了这个问题,我在任何地方都找不到这个问题的答案。

传递给函数的不是数组。你在给它传球。