C++ 正在查找状态\堆栈\缓冲区\溢出的源

C++ 正在查找状态\堆栈\缓冲区\溢出的源,c++,memory,buffer,C++,Memory,Buffer,在我的程序中,我在while循环中使用switch语句来生成用户菜单。当运行我的前两个选项时,我已经编码好了,可以正常工作,然后返回到用户菜单。但是,当输入'9'退出选项时,我碰到了一个断点,并得到一条消息,说明遇到了状态\缓冲区\溢出。由于不太清楚内存分配是如何工作的,我有点困惑是什么导致了这个问题 这是我的main.cpp文件的代码 #include<string> #include<iostream> #include "twitcurl.h" #include "

在我的程序中,我在while循环中使用switch语句来生成用户菜单。当运行我的前两个选项时,我已经编码好了,可以正常工作,然后返回到用户菜单。但是,当输入'9'退出选项时,我碰到了一个断点,并得到一条消息,说明遇到了状态\缓冲区\溢出。由于不太清楚内存分配是如何工作的,我有点困惑是什么导致了这个问题

这是我的main.cpp文件的代码

#include<string>
#include<iostream>
#include "twitcurl.h"
#include "curl/curl.h"
#include"classes.h"

FILE _iob[] = { *stdin, *stdout, *stderr };

extern "C" FILE * __cdecl __iob_func(void)
{
    return _iob;
}


void oauthLogin(twitCurl &twitterObj);
bool login(twitCurl&);


int main(int argc, char *argv[])
{
    //make twitcurl instance
    twitCurl twitterObj;

    bool load = true;
    oauthLogin(twitterObj);
    load = login(twitterObj);
    if (load == false)
    {std::cout << "error." << std::endl; }
    else
    {
        user currentUser;
        currentUser.loadUserData(twitterObj);
        char menuChoice;
        //user is now logged in. Give them menus screen.
        do
        {

            std::cout << "1 - View your timeline.\n";
            std::cout << "2 - Send tweet.\n";
            std::cout << "3 - See Recommended Hashtags.\n";
            std::cout << "4 - See Degrees of separation.\n";
            std::cout << "9 - Exit. \n";
            std::cout << "Enter your choice and press return: "; std::cin >> menuChoice;

        } while (menuChoice != '9');
            switch (menuChoice)
            {
            case '1':

                currentUser.loadTimeline(twitterObj);
                break;

            case '2':

                currentUser.sendTweet(twitterObj);
                break;
            case'9':

                break;

            default:

                std::cout << "Pick a valid choice.\n" << std::endl;
                std::cout << "Please enter a valid choice." << std::endl;

                break;

               }
              }
return 0;
};
#包括
#包括
#包括“twitcurl.h”
#包括“curl/curl.h”
#包括“classes.h”
文件_iob[]={*stdin,*stdout,*stderr};
外部“C”文件*\uuuu cdecl\uuuu iob\u func(无效)
{
返回iob;
}
void oauthLogin(twitCurl和twitterObj);
bool登录(twitCurl&);
int main(int argc,char*argv[])
{
//创建twitcurl实例
twitCurl-twitterObj;
布尔负荷=真;
oauthLogin(twitterObj);
加载=登录(twitterObj);
if(load==false)

{std::cout然而,当输入'9'退出选项时,我碰到了一个断点,并得到一条消息说遇到了状态\u缓冲区\u溢出——这并不意味着“9”选项是问题所在。可能是选项1和/或2。对这些调用进行注释,看看会发生什么。@PaulMcKenzie,为回复人干杯。我刚刚尝试了你在那里提出的建议,但仍然遇到了与以前相同的断点。出于好奇,我尝试对“user”类“currentUser”的实例进行注释还有我在那之后的一行中调用的成员函数。我仍然遇到同样的问题:/@PaulMcKenzie也在使用后对我的所有字符串尝试了.clear()