指针不起作用
Pointer doesnt work
我的代码:
#include<iostream>
using namespace std;
struct element
{
int liczba;
element *nastepny;
element();
};
element::element()
{
nastepny=0;
}
int main()
{
element pierwszy;
pierwszy.liczba=1;
element drugi;
(*nastepny).pierwszy=2;
drugi.liczba=2;
return 0;
}
它说*nastepny没有被宣布,但我不知道这怎么可能。我用*nastepny创建了结构。如果我写元素 *nastepny,它说该元素没有名为 pierwszy 的成员。SOmething出了问题,因为pierwszy是在main函数的开头声明的。
(*nastepny).pierwszy=2;
这是没有意义的,因为nastepny
不是静态声明的,也不是在其当前或任何父范围内声明的。 它是结构的成员,仅作为结构的一部分和实例存在。
此外,您不能简单地将两个分配给某个未分配指针的地址。 您有一个指针,但它尚未指向任何有效的位置。 因此,要么:
drugi.nastepny = malloc(sizeof *drugi.nastepny);
*drugi.nastepny = whatever;
要动态分配空间,或...
drugi.nastepny = &some_variable;
但要注意最后一个的终身问题。
错误发生在
(*nastepny).pierwszy=2;
^^^^^^^^
nastepny
未在此范围内声明。结构的成员使其无法在结构(实例)外部访问。
我猜你的意思是这样的:
drugi.nastepny = &pierwszy;
drugi.nastepny->liczba = 2;
我建议这样做:
pierwszy.nastepny = &drugi;
我不确定当你尊重你的指针时,当你从来没有给它分配内存地址时,你期望如何获得一个对象?
如果要获取指向对象本身的指针,则可以使用 this
指针。但是,在这种情况下,这样的应用程序将毫无意义。
您提供给元素指针的唯一赋值是 0 (NULL),因此它不指向任何元素对象。
相关文章:
- 从向量到空指针的 memcpy(反之亦然)不起作用
- 为什么 operator() 处的指针成员不起作用?
- 指针变量在 cout 函数中不起作用
- std::函数不起作用,但普通的旧函数指针可以 - 为什么?
- 指向类中函数方法的指针不起作用
- 带有此指针的模板类多重继承构造函数不起作用?
- 在 c++ 中返回矢量的指针不起作用
- 将指针传递给函数在简单的情况下有效,但在"class" -izing 之后不起作用
- 班上的Arduino步进电动机指针不起作用
- 功能指针不起作用(C )
- 投射时共享指针不起作用?
- 为什么指针>数据有效,而 *double_pointer->data 不起作用?
- 指向结构的指针不起作用
- 指针不起作用,返回地址不是值
- 尝试调用成员函数指针不起作用
- 为什么我的指针数组分配不起作用
- C++ -- 指向结构数组的指针,该数组包含指向不起作用的类数组的指针
- 矩阵乘法中的指针不起作用
- 为什么 [ ] 括号在取消引用指针时不起作用?
- 为什么将指针转换为引用在我的访问器 (getter) 中不起作用?