在指向结构的指针中访问指向整数的指针
Accessing a pointer to integer within a pointer to structure
我很难从*stPtr
访问*testscores
。
#include <iostream>
using namespace std;
struct GradeInfo{
char name;
int *testscores;
double average;
};
int main(int argc, char *argv[]) {
GradeInfo var;
*var.testscores = 10;
cout << *var.testscores;
GradeInfo *stPtr = &var;
// This line of code breaks my test program
cout << stPtr->testscores;
return 0;
}
,如果您可以帮助我访问指向整数变量的指针指向我已声明的结构变量中的整数变量的指针。
您首先应该为其分配空间以存储实际数据:
*var.testscores = new int[5];
您可以访问它:
var.testscores[3] = 100;
请注意,->
操作员不会解除成员。您应该添加额外的星号或使用括号:
cout << *stPtr->testscores;
cout << stPtr->testscores[3];
那时应该可以。
您的指针未初始化。用new
初始化它,或者更好地使用智能指针,例如unique_ptr
,它将自动处理数据的删除。
您以下代码。您没有为整数指针分配内存。
注意:不要忘记使用新的。
释放分配的内存。#include <iostream>
using namespace std;
struct GradeInfo{
char name;
int *testscores;
double average;
};
int main(int argc, char *argv[]) {
GradeInfo var;
var.testscores = new int(10);
cout << *var.testscores << endl;
GradeInfo *stPtr = &var;
cout << *(stPtr->testscores) << endl;
delete(var.testscores);
return 0;
}
相关文章:
- 整数键映射到头文件中的成员函数指针
- 如何实现容纳整数和无效指针的双向链表?
- 使用指针将 ASCII 值添加到整数
- 如果整数与指针大小相同,则重新解释将整数转换为指针双射是否具有双射作用?
- 在C++中,如果我可以直接将整数分配给指针而不使用"new",为什么要使用"new"?
- 取消引用指向整数的指针时获得不同的结果
- 为什么此指针值不能转换为整数的规则是什么?
- 禁止指针和整数之间的比较C++
- 为什么在将 void 指针转换为整数指针时出现分段错误
- ISO C++禁止指针和整数 [-fpermissive] [c++] 之间的比较
- 指向整数数组和打印总和的指针
- 将uint64_t转换为字节时从不同大小的整数强制转换为指针
- Qt 错误 iso c++ 禁止指针和整数之间的比较 -permissive
- 如何在 c++ 中动态声明指向整数的指针数组?
- C++:这是使用整数变量作为函数调用指针的正确方法吗
- 如何在满足常量表达式的同时将整数传递给指针,传递给 std::array<double、integer>?
- 创建<int>对整数数组指针的矢量引用 (C++)
- 整数指针数组的元素是否可以指向整数数组?
- 将指针整数(int**)转换为c中的String
- 为什么此指针/整数比较会生成分段错误