我在返回动态分配的两个数组时遇到问题。我有一个外部文件正在读取数组的大小。(在我的情况下是20),当我使用动态分配的数组时,这就决定了数组的大小。
此外,一旦我返回它们,我当前的语法是否正确,或者是否有什么需要更改的地方。
这是我的代码
int main (void)
{
int size;
int notFound = 0;
int accountNumber = 0;
int results;
int * accountPtr = nullptr;
double * balancePtr = nullptr;
size = readFile(notFound, accountPtr, balancePtr);
if (notFound == 0)
{
selectionSort(accountPtr, balancePtr, size);
while (accountNumber != -99)
{
cout << "Please Enter an Account Number (Type -99 to quit): ";
cin >> accountNumber;
if (accountNumber == -99)
{
cout << "Goodbye!" << endl;
}
else
{
results = binarySearch(accountPtr,accountNumber,size);
if ( results == -1)
{
cout << "That Account Number Does Not Exist." << endl;
}
else
{
cout << "nAccount Number" << "tt" << "Account Balance" << endl;
cout << "-----------------------------------------------" << endl;
cout << fixed << setprecision(2) << accountPtr[results] << "ttt" << balancePtr[results] << endl << endl;
}
}
}
}
return 0;
}
int readFile (int ¬Found, int *accountPtr, double *balancePtr)
{
int size;
ifstream inputFile;
inputFile.open("account.txt");
if (inputFile.fail())
{
cout << "The File Account.TXT was not found." << endl;
notFound = 1;
}
else
{
inputFile >> size;
unique_ptr<int[]> accountPtr(new int[size]);
unique_ptr<double[]> balancePtr(new double[size]);
for(int i = 0; i < size; i++)
{
inputFile >> accountPtr[i] >> balancePtr[i];
}
}
return size;
}
您正在按值传递指针。调用代码中的指针变量将不会被修改。除了传递值之外,在函数中,您还声明了与形式参数同名的局部变量。
相反,您应该返回或通过引用std::vector
传递。