指向指针数组的指针导致seg错误
Pointer to array of pointers results in seg fault
我正在为学校做一个项目,并面临这个基本问题(这不是作业的一部分,只是问题初始阶段的一个挫折)。
我正在尝试创建一个指向数组的指针。数组包含指针,每个指针指向一个类对象"Customer"。
这是顾客。这是customer.cpp.
最后,这里是我的主要内容,它引起了问题:
#include "customer.h"
int main () {
Customer** c_array;
c_array = new Customer*[10];
cout << c_array[0]->getEnter() << endl;
return 0;
}
有什么想法吗?
错误如下:
Segmentation fault: 11
分配一个指针数组不会为这些指针所指向的对象分配任何东西
c_array = new Customer*[10];
创建一个指针数组,但它们指向某个随机位置(当您试图取消引用它们时会导致分段错误)。您还需要编写一个循环来初始化这些指针。
使用c_array = new Customer*[10]
只会在堆上创建一堆指针,而不会为实际客户分配内存。在此之后,您必须为每个Customer Object
分配内存。请使用以下内容:
int main () {
Customer* c_array[10];
for(unsigned int i = 0; i < 10; ++i)
c_array[i] = new Customer;
cout << c_array[0]->getEnter() << endl;
return 0;
}
或
int main () {
Customer* c_array;
c_array = new Customer[10];
cout << c_array[0]->getEnter() << endl;
delete[] c_array;
return 0;
}
或
#include <vector>
int main () {
std::vector<Customer> c_array(10);
cout << c_array[0]->getEnter() << endl;
return 0;
}
相关文章:
- 1d 智能指针不适用于语法 (*)++
- 在C#中处理C++指针而不使用unsafe的最佳方法
- Seg Fault Issue C++ (file IO / getline)
- 为什么使用 "this" 指针调用派生成员函数?
- 函数向量_指针有不同的原型,我可以构建一个吗
- 使用指针从C++中的数组中获取最大值
- 助记符和指向成员语法的指针
- 嵌入方指针压缩已禁用
- 数组的指针从不分段故障
- C++ 指针的内存地址和指向数组的内存地址如何相同?
- 将内存分配给指针数组时SEG故障
- SEG故障取决于指针分配的顺序
- SEG 错误,同时将内存分配给结构向量的指针
- 指针给出seg错误
- 仅在Linux操作系统上使用双指针后的Seg错误
- 由 shmat 返回的指针位于地址空间的末尾,这给出了 SEG 错误
- 正在尝试访问指针位置中的值,并获取seg错误
- 指向指针数组的指针导致seg错误
- 指向结构和函数指针的指针 - > Seg 错误
- 函数指针返回值时出现奇怪的seg错误