我決定學習C++,它具有相當有限的以前的編程知識。我目前正在關注本書跳過C++作者:Alex Allain。我已經打了一章指針和爲我出現以下問題的實踐問題的一部分:C++ - 函數,參數和指針 - 訪問衝突
- 寫,提示用戶輸入的功能他或她的姓和名,兩個獨立的值。此函數應通過傳遞給函數的附加指針(或引用)參數將這兩個值返回給調用者。嘗試先用指針和引用來做這件事。
這是我寫的代碼:
#include <iostream>
void getDetails(char * n, char * s)
{
std::cout << "Input name: ";
std::cin >> *n;
std::cout << "\n";
std::cout << "Input surname: ";
std::cin >> *s;
}
int main()
{
char *name = NULL;
char *surname = NULL;
getDetails(name, surname);
std::cout << "Name: " << *name << "\n";
std::cout << "Surname: " << *surname << "\n";
return 0;
}
我一直運行到訪問衝突錯誤,我完全不知道爲什麼。
- 我在做什麼錯?
- 爲什麼它錯了?
通過就像一個指針接收輸入是危險的,因爲用戶可以輸入更多的文字比你有空間(在這種情況下實際上沒有空間)。您應該使用可以檢查輸入量的方法,或者使用'std :: string',這樣更簡單,更安全。 –