我創建了一個簡單的程序來幫助我理解如何動態分配結構。我希望程序從用戶那裏獲取5個名稱和5個帳戶,並顯示姓名和帳戶。我知道一個指針就像一個引用變量,唯一的區別而不是傳遞值,它傳遞變量的地址。我爲第23行設置了一個突破點(「getline(std :: cin,clientPtr [count] .name);」),第25行(「std :: cin.ignore(std :: numeric_limits :: max(),' \ n');「), line 27(」std :: cin >> clientPtr [count] .accounts;「),第40行(」std :: cout < <「Name:」< < clientPtr [count]。 (「std :: cout < <」Name:「< < clientPtr [count] .name;」),line 31(showInfo(& client);)。當我調試它時,顯示第41行沒有執行。它應該顯示每個客戶的名稱和賬戶。在這種情況下,它不是。我不知道爲什麼,只是我的一個小背景,我是C++的新手,還有使用調試器。我使用的是xcode 8.2,我使用的調試器是lldb。我在這裏學習,所以任何事情都會有所幫助。謝謝。我在動態分配結構時遇到了問題
#include <iostream>
#include <limits>
struct BankInfo
{
std::string name;
std::string accounts;
};
void showInfo(BankInfo*);
int main()
{
BankInfo client;
BankInfo* clientPtr=nullptr;
clientPtr = new BankInfo[5];
for(int count =0; count < 5; count++)
{
std::cout << "Enter your name:";
getline(std::cin,clientPtr[count].name);
std::cin.clear();
std::cin.ignore(std::numeric_limits<std::streamsize>::max(),'\n');
std::cout << "Enter you account number:";
std::cin >>clientPtr[count].accounts;
}
showInfo(&client);
return 0;
}
void showInfo(BankInfo* clientPtr)
{
for(int count =5; count < 5; count++)
{
std::cout <<"Name:" << clientPtr[count].name;
std::cout <<"Account:" << clientPtr[count].accounts;
}
}
'for(int count = 5; count <5; count ++)' - 你看到這行有什麼問題嗎? – PaulMcKenzie
'showInfo(&client);'看到有什麼不對嗎? – juanchopanza