所以我尝试再次学习指针,当我输入一个数字Visual Studio给了我一个错误。 这是来源:
// Includes
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;
// Variables
int amount;
// Main function
int main()
{
cout << "How many numbers should be in this array: ";
cin >> amount;
int *p_array;
p_array = new int[amount];
for (int i = 0; i < amount; i++)
{
cout << (int)p_array << endl;
p_array++;
}
delete[] p_array;
_getch();
return 0;
}
我知道p_array++;
存在问题。
当我尝试在Code :: Blocks中编译它时,它工作得很好(我在代码块中编译时删除了#include "stadfx.h"
并将_getch();
更改为getch();
。
P.S。我是C ++的新手:P
答案 0 :(得分:2)
我通过这样做来修复它:
// Includes
#include "stdafx.h"
#include <iostream>
#include <string>
#include <conio.h>
using namespace std;
// Variables
int amount;
int *pointer;
// Main function
int main()
{
cout << "How many numbers should be in this array: ";
cin >> amount;
int *p_array;
p_array = new int[amount];
pointer = p_array;
for (int i = 0; i < amount; i++)
{
cout << (int)p_array << endl;
p_array++;
}
p_array = pointer;
delete[] p_array;
_getch();
return 0;
}
我创建了一个名为pointer
的指针,并存储了p_array
的原始地址,然后delete[] p_array;
我将地址存储在pointer
到p_array
。
感谢drescherjm告诉我这是什么问题。
我想没人会需要这个解释,但我想在这里写一下。