C++:如何使数组全局可访问
C++: How to make an array global accessible?
如果必须首先从argv
计算数组的大小,如何使数组全局可访问(例如通过指针)?
#include <cstdlib> // atoi
int *p[];
int main (int argc, char** argv)
{
int x = atoi (argv[1]);
int i[x];
p = &i;
}
错误:"p"的存储大小未知
像这样:
#include <string>
#include <vector>
std::vector<int> p;
int main(int argc, char ** argv)
{
if (argc < 2) { return 1; } // make sure argv[1] exists!
p.resize(std::stoi(argv[1]));
// ...
}
(有很多方法可以将字符串解析为整数;选择最适合您需要的方法,例如考虑错误处理。)
i的大小在编译时就已经知道了。
在这种情况下,您应该在运行时分配内存。你必须这样做:
int i[] = new int[x];
p=&i;
当不再使用p时,必须释放内存以防止内存泄漏。
delete[] (*p);
整个程序:
#include <cstdlib> // atoi
int *p[];
int main (int argc, char** argv)
{
int x = atoi (argv[1]);
int i[] = new int[x];
p=&i;
//do whatever you want
delete[] (*p);
return 0;
}
相关文章:
- 对全局变量的多线程访问:我应该使用互斥锁吗?
- cuda:多个线程访问同一个全局变量
- 访问类对象以与全局变量进行比较
- 为什么全局函数 void showA(A&x) 能够访问 A 类的私有成员?
- Qt C++创建一个所有类都可以访问的全局变量
- 从多个文件访问静态全局 WinForm UI 对象
- C++娜娜 如何从全局列表框*指针访问列表框内的索引 0 上的按钮?
- 如何在全局函数中访问链表的头部和尾部
- 在C 中本地声明隐藏的封闭范围(而非全局)中访问变量
- 访问另一个.cpp文件中的.cpp文件中定义的全局变量
- 如何使用 c++ 中的函数访问全局变量?
- 使用全局引用调用函数时访问冲突
- (C )创建可以从功能访问的动态全局数组/向量
- 如何在不使用全局变量的情况下访问 lambda 中的变量
- QML全局访问C++类
- 全局访问单例数据
- 如何保留对指向堆上创建的对象的指针的全局访问权限
- 如何从任何类全局访问 QT 对话框
- 全局访问 wxFrame(s) 和 wxDialog(s)
- 使局部c库函数可全局访问