int cannot be converted to int []

后端 未结 4 719
陌清茗
陌清茗 2021-01-24 02:39

new to programming here and i keep getting the error message, \'incompatible types, int cannot be converted to int []\', the question is to add R1& R2 together if they are o

4条回答
  •  后悔当初
    2021-01-24 02:52

    Your code is broken in many several ways, at least:

    1. You declared returning an array but what is the value of it when inputs are of the wrong size? Manage such errors in better ways (stop, throw exception, return error code, etc). At least never display something at this place, this is not the place were you have to tackle the error, this is the place here you detect it, just report it to caller(s).
    2. You (tried to) created space for the returned value but how could this be if conditions for having a return value is not met?
    3. You used Java syntax to declare an array, int []sumArray should be `int sumArray[0].
    4. You can't dynamically allocate an array like this, to capture a dynamic allocation you must use a pointer, an array is not a pointer. But a pointer can be set to the memory address of an allocated array, like int *sumArray = new int[10]
    5. sumArray is an array so to set an element of it use sumArray[index] = ...

    So this may be better:

    public int *arrayAdd(int[] R1, int[] R2) {
        if( R1.length!= R2.length) {
            return nullptr;
        }
        int *sumArray= new int[R1.length];
        for(int i=0; i< R1.length; i++) {    
            sumArray[i] = R1[i]+ R2[i]; 
        }
        return sumArray;
    }
    

    After question editing

    If you want to sum two arrays, element by element, then a single loop is sufficient...

提交回复
热议问题