Getline()继续跳转for循环中的行

时间:2015-01-06 21:07:18

标签: c++ pointers

我正在尝试打印变量的值,其中一个是指针,第二个只是一个int。

我确实为一个指针-a分配了一个值,而不是指定了一个指向变量的指针。我正在尝试输出变量的值,这意味着显示指针的值,但我无处可去。

由于编译器显示以下警告:

'a'在此函数中使用了单元化

并且最终在编译完成后,我在运行程序时遇到错误,Windows弹出窗口告诉我:

“0x00401359处的指令引用了0x00417c7e处的内存。无法写入内存。单击确定以终止程序。”

这段代码有什么问题?

#include <iostream> 

using namespace std; 

int main(void) 
{
   int *a; 
   int b; 
   *a = 5;
   b = *a; 

   cout << b << " " << *a; 

}

2 个答案:

答案 0 :(得分:2)

a是一个指针,应该指向某处。如果你没有初始化它,它只指向任何地方,因此你的赋值*a=5试图写入随机存储器地址。

#include <iostream> 

using namespace std; 

int main(void) 
{
   int c;       // reserves some space for a to point to
   int *a = &c; // NOW a is initialized and it points to c 
   int b; 
   *a = 5;      // writes 5 into the variable c
   b = *a; 

   cout << b << " " << *a; 

}

答案 1 :(得分:2)

#include <iostream>

using namespace std;

int main(void)
{
   int *a;
   int b;
   a=&b;
   *a = 5;

   cout << b << " " << *a;

}

您的指针a没有可以保存此值的变量地址。