Ciao,

Io utilizzo questo codice:
codice:
#include<cstdlib>
#include<iostream>

using namespace std;

void espandiArray(int vect[], int length) {
  int sum=0;
  for(int i=0; i<length; i++) {
    sum += abs(vect[i]);
  }
  int array[sum];
  int index = 0;
  
  // effettua l'espansione
  for(int i=0; i<length; i++) {
    int n = vect[i];
    if(n < 0) {
      while(n != 0) {
        array[index] = -1;
        n++;
        index++;
      }
    }
    else if(n > 0) {
      while(n != 0) {
        array[index] = 1;
        n--;
        index++;
      }
    }
  }
  
  cout << "[";
  for(int i=0; i<index; i++) {
    cout << array[i] << ",";
  }
  cout << "]";
}

int main() {
  int vect[] = {-2,0,1,0,3,2,-5};
  espandiArray(vect,7);
  return 0;
}
e funziona senza problemi... questo è l'output della versione attuale:
codice:
[-1,-1,1,1,1,1,1,1,-1,-1,-1,-1,-1,]