C\C++中的NULL的用法



char *p=NULL;
strlen(p);

报错    0xC0000005: 读取位置 0x00000000 时发生访问冲突

P在这里为空指针,地址

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`malloc` 是 C 和 C++ 用于动态分配内存空间的函数。它的具体用法如下: 在 C 语言,`malloc` 的函数原型为: ```c void* malloc(size_t size); ``` 其,`size_t` 是一个无符号整数类型,表示要分配的内存空间的大小(以字节为单位)。`malloc` 函数会在堆分配一块大小为 `size` 的连续内存空间,并返回该内存空间的首地址。如果分配失败,`malloc` 函数会返回 `NULL`。 例如,下面的代码会在堆分配一个大小为 10 字节的内存空间,并将其首地址赋值给指针 `p`: ```c int* p = (int*) malloc(10 * sizeof(int)); if (p == NULL) { // 分配失败 } else { // 分配成功,使用内存空间 } ``` 在 C++ 语言,`malloc` 函数也可以用于动态分配内存空间,但是建议使用 `new` 运算符代替,因为 `new` 运算符可以处理对象的构造和析构。`new` 运算符的用法如下: ```c++ int* p = new int[10]; if (p == nullptr) { // 分配失败 } else { // 分配成功,使用内存空间 } ``` 与 `malloc` 函数不同的是,`new` 运算符返回的是一个指向第一个元素的指针,而不是一个指向整个内存块的指针。此外,`new` 运算符还可以用于分配单个对象的内存空间,例如: ```c++ int* p = new int; if (p == nullptr) { // 分配失败 } else { // 分配成功,使用内存空间 } ``` 在使用完动态分配的内存空间后,应该使用 `free` 函数(在 C 语言)或 `delete` 运算符(在 C++ 语言)释放该内存空间,以避免内存泄漏。例如: ```c free(p); ``` 或者 ```c++ delete[] p; ``` 或者 ```c++ delete p; ``` 需要注意的是,对于使用 `new` 运算符分配的内存空间,必须使用 `delete` 运算符释放该内存空间。对于使用 `malloc` 函数分配的内存空间,必须使用 `free` 函数释放该内存空间。在 C++ 语言,不应该混合使用 `malloc` 函数和 `new` 运算符,否则可能会导致不可预知的错误。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值