gpt4 book ai didi

C++ - 函数、参数和指针 - 访问冲突

转载 作者:太空宇宙 更新时间:2023-11-04 14:47:59 27 4
gpt4 key购买 nike

我决定学习 C++,因为之前的编程知识非常有限。我目前正在关注Alex AllainJumping into C++ 一书。我已经学习了关于指针的章节,作为练习题的一部分,我遇到了以下问题:

  1. Write a function that prompts the user to enter his or her first name and last name, as two seperate values. This function should return both values to the caller via additional pointer (or reference) parameters that are passed to the function. Try doing this first with pointers and then with references.

这是我写的代码:

#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;
}

我一直遇到访问冲突错误,我完全不知道为什么。

  1. 我做错了什么?
  2. 为什么错了?

最佳答案

其实你有两个问题:

  1. 您没有为 namesurname 保留内存(这就是您收到访问冲突错误的原因)
  2. 您正在从 cin 中读取一个字符(因为您取消引用了一个 char*,这导致了一个字符)

您可以通过使用 std::string 而不是 char*

来解决这两个问题

关于C++ - 函数、参数和指针 - 访问冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33567058/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com