Ошибка, стоящая перед мной, - это компилятор, говорящий cannot convert ‘double*’ to ‘double’ in assignment
. Мой код ниже.Несоответствие типа
double* initArray(int data[], int dimensionCount){
//data: element 0= number of dimensions
//element 1 through inf define the size of each dimension
//dimensionCount keeps track of the current dimension being manipulated by the function
//Allocate dynamic memory for the current dimension
double* output;
output=new double[data[dimensionCount]];
int i=dimensionCount;
while(i<data[dimensionCount]){
if(!(output[i]= initArray(data, dimensionCount++))){
std::cout<< "Error! Out of Memory!";
break;
}
i++;
}
//returning the generated array tacks on the generated dimension to the lower dimension preceding it
return output;
}
Как output
имеет arrayInit
возвращает переменных типа double*
типа double*
и я не знаю, где он пытается преобразовать из double
в double*
. Я нашел this, но он, похоже, не применяется, поскольку data
передается правильно, а intArray
возвращает указатель на генерируемый массив, а не сам массив, поэтому не должно быть никакого несоответствия типов с output
.
'data []' скорее всего не так, как вы думаете, вы, вероятно, просто означаете «данные» в этом контексте. Обратите внимание, что 'initArray (int data [] ...' эквивалентно 'initArray (int * data ...' Однако это скорее C-ish C++. Вы должны обязательно получить более эффективный учебный материал. Примечание: если вы делаете это по какой-то причине, кроме академического любопытства, то, что вам нужно, скорее всего, уже реализовано и готово к использованию. –
Чтобы подчеркнуть, 'new []' действительно * редко используется в реальном мире, 'std :: vector' делает все, что он делает и все больше и больше. –
Я просто делаю это, чтобы попытаться понять: DI также пытается создать библиотеку, не используя ничего, кроме 'iostream' и' string'. Вы правы на данных, при ближайшем рассмотрении, не будет ли это элементом массива, который я пытаюсь ссылаться, без ключа, указывающего массиву, в какой ячейке я ссылаюсь? Я попробую изменить это на 'data' и посмотреть, как это работает. Спасибо! – Graf