【c++】main函数以及内存分区

main函数标准写法

main函数又称主函数,c程序唯一的入口
在C的标准文档里对main函数的描述为

int main(void)
int main(int argc, char *argv[]) // char *argv[]可以写成char **argv

argc(argument counter)是提供给主函数的参数个数,
argv(argument value)第二个是参数的字符串数组的指针。

在C++标准文档里对main函数的描述为:

int main() { /* … */}
int main(int argc, char *argv[]) {/ **/}

参考:探寻main函数的标准写法,以及获取main函数的参数、返回值

内存申请分区

程序运行时,内存分为四大区
1.代码区:存放函数体内的二进制代码。
2.数据区:也称全局区或者静态区,存放全局的东西,比如全局变量,静态变量以及常量。
3.栈区:由编译器自动分配和释放,存放函数参数,局部变量等,不需要时系统会自动清除。
4.堆区:由程序员分配释放,若程序员未释放,则程序结束之后,编译器自动释放。c++中可以用new在堆区中开辟数据。

在这里插入图片描述
在执行完func()函数以后,指针变量p保存了a的首地址,但是由于a定义在堆区,地址上的常量值已经被释放了
参考 C++ 学习(九)内存分区(代码区、全局区、栈区、堆区)

变量在函数内定义时,如main函数(main函数也是一种函数,作为程序入口),从栈空间申请内存进行存储。进程创建时初始化栈空间,大小固定。
变量在函数体外定义时,申请的内存来自数据段,内存大小按需分配,可以自由增长。
较大的变量,如数组,可以定义在堆区。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在C++中实现虚拟磁盘分区,你可以使用文件操作和数据结构来模拟磁盘分区的功能。下面是一个简单的示例: ```cpp #include <iostream> #include <fstream> #include <string> using namespace std; struct Partition { string name; int size; }; void createPartition(const string& partitionName, int partitionSize) { ofstream disk(partitionName + ".txt"); if (!disk) { cout << "Failed to create partition." << endl; return; } // 初始化分区内容为空 for (int i = 0; i < partitionSize; i++) { disk << "0"; } cout << "Partition " << partitionName << " created successfully." << endl; disk.close(); } void deletePartition(const string& partitionName) { if (remove((partitionName + ".txt").c_str()) != 0) { cout << "Failed to delete partition." << endl; return; } cout << "Partition " << partitionName << " deleted successfully." << endl; } int main() { Partition myPartition; myPartition.name = "MyPartition"; myPartition.size = 1024; createPartition(myPartition.name, myPartition.size); deletePartition(myPartition.name); return 0; } ``` 上述示例中,我们定义了一个 `Partition` 结构体,用于保存分区的名称和大小。`createPartition` 函数用于创建一个指定大小的分区文件,并将其内容初始化为空。`deletePartition` 函数用于删除指定的分区文件。 在 `main` 函数中,我们创建了一个名为 `MyPartition` 大小为 1024 的分区,并在创建成功后删除了该分区。 请注意,这只是一个简单的示例,实际的磁盘分区实现可能更加复杂。你可能需要考虑如何管理分区的空闲空间、文件系统的结构以及文件的读写等问题。此外,这个示例中使用的是文本文件来模拟磁盘分区,对于更复杂的实现,你可能需要使用二进制文件或其他数据结构来管理磁盘空间。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值