【发布时间】:2021-07-21 07:51:16
【问题描述】:
我的结构:
struct Company {
string name;
string profit_tax;
string address;
};
我是用line分配的:
Company* a = (Company*)calloc(m, sizeof(Company));
long long m =pow(10,9)+9
但是指针 a 在分配后是一个空指针。我不知道为什么会这样?。请告诉我解决方案,谢谢!
【问题讨论】:
-
在 99% 的情况下,解决方案是
auto a = new Company[m]; -
@StefanRiedel 我不同意。
std::vector<Company> a(m);会更好。 -
std::string的大小在 64 位架构上类似于 24 或 32 字节。您是否知道您正在分配 72 或 96 GB?你有多少内存? -
顺便说一句,您真的只想分配内存(存储),还是还希望构造此存储中的对象?
-
@DanielLangr,我知道,我的笔记本电脑有 8GB RAM。但这是我练习的任务。我认为这是错误的
标签: c++ memory-management