C++ 指向数组的指针
最近,我一直在努力加强我的指针技能,我遇到了以下问题: 我有下面的一段代码,但是我遇到了一个运行时错误。我试图查找一些关于遍历表示数组的指针的内容,但什么也找不到 有人能帮我找到问题吗C++ 指向数组的指针,c++,arrays,pointers,C++,Arrays,Pointers,最近,我一直在努力加强我的指针技能,我遇到了以下问题: 我有下面的一段代码,但是我遇到了一个运行时错误。我试图查找一些关于遍历表示数组的指针的内容,但什么也找不到 有人能帮我找到问题吗 #include <bits/stdc++.h> using namespace std; int main() { int * arr; arr[0]=1; arr[1]=2; for (int g=0; g<2; g++) cout << ar
#include <bits/stdc++.h>
using namespace std;
int main()
{
int * arr;
arr[0]=1;
arr[1]=2;
for (int g=0; g<2; g++) cout << arr[g] << '\n';
}
#包括
使用名称空间std;
int main()
{
int*arr;
arr[0]=1;
arr[1]=2;
对于(int g=0;g您实际上没有为数组声明任何存储,arr也没有实际指向数组的第一个元素(取消引用是未定义的行为)
您缺少以下内容:
int solve[2];
int * arr = solve;
或
这两种方法都会将作用域内正确分配的存储地址分配给arr
,取消引用是一种已定义的行为。您实际上没有为数组声明任何存储,arr也没有实际指向数组的第一个元素(取消引用是未定义的行为)
您缺少以下内容:
int solve[2];
int * arr = solve;
或
这两种方法都会将作用域内正确分配的存储地址分配给arr
,取消引用是一种已定义的行为。您实际上没有为数组声明任何存储,arr也没有实际指向数组的第一个元素(取消引用是未定义的行为)
您缺少以下内容:
int solve[2];
int * arr = solve;
或
这两种方法都会将作用域内正确分配的存储地址分配给arr
,取消引用是一种已定义的行为。您实际上没有为数组声明任何存储,arr也没有实际指向数组的第一个元素(取消引用是未定义的行为)
您缺少以下内容:
int solve[2];
int * arr = solve;
或
这两种方法都会将作用域内正确分配的存储器的地址分配给arr
,而取消对它的引用是定义的行为。那么,我该如何更改它?@πάνταῥεῖ 他的一个是完全有效的Too是完全有效的,但是添加索引0没有真正的意义…所有这一切将要做的就是将int
长度的0倍添加到地址,即添加零…imoint*arr=&solve[0];
更清晰;它明确显示您正在将指针设置为指向数组中的第一个元素。那么,我该如何更改它?@πάνταῥεῖ 他的一个是完全有效的Too是完全有效的,但是添加索引0没有真正的意义…所有这一切将要做的就是将int
长度的0倍添加到地址,即添加零…imoint*arr=&solve[0];
更清晰;它明确显示您正在将指针设置为指向数组中的第一个元素。那么,我该如何更改它?@πάνταῥεῖ 他的一个是完全有效的Too是完全有效的,但是添加索引0没有真正的意义…所有这一切将要做的就是将int
长度的0倍添加到地址,即添加零…imoint*arr=&solve[0];
更清晰;它明确显示您正在将指针设置为指向数组中的第一个元素。那么,我该如何更改它?@πάνταῥεῖ 他的一个是完全有效的,Too是完全有效的,但添加索引0实际上没有意义……所有这一切只需将int
长度的0倍添加到地址,即添加零……imoint*arr=&solve[0];
更清晰;它明确地表明您正在将指针设置为指向数组中的第一个元素。