加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 检查我是否应该释放内存

发布时间:2020-12-16 03:00:00 所属栏目:百科 来源:网络整理
导读:我将一个指向char数组的指针传递给我的方法,以及一个char数组实际高度的值.我循环查看所有值是否为0,如果它们返回0,否则返回1. 该方法用作测试,以查看我是否应该释放内存,并将指针设置为null(如果它为0).我所遇到的问题是,程序最终应该有“一些不自在”的记
我将一个指向char数组的指针传递给我的方法,以及一个char数组实际高度的值.我循环查看所有值是否为0,如果它们返回0,否则返回1.

该方法用作测试,以查看我是否应该释放内存,并将指针设置为null(如果它为0).我所遇到的问题是,程序最终应该有“一些不自在”的记忆,所以我不知道它是否正确地进行 – 而gdb我非常努力.

谢谢阅读

int shouldBeNull(char *charPointer,int sizeOfCharArray)
{
    int isIn = 0;
    int i = 0;

    while(i < sizeOfCharArray){
        if(*charPointer != '0'){
            isIn = 1;
            break;
        }
        i++;
        charPointer++;
    }   
    return isIn;     
}

解决方法

当你说“…所有的值都是零…”时,我假设你的二进制值为零,而不是字符’0’…
if(*charPointer != '0'){

这是字符零(0x31)而不是空字符(0x00).如果您尝试检查零字节,请尝试以下操作:

if (*charPointer != '') {

此外,您不会递增或抵消您的字符指针charPointer,因此您始终测试第一个字符.

if (*charPointer++ != ') {

…要么…

if (*(charPointer + i) != ') {

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读