当前位置: 首页 > news >正文

哈尔滨门户网站设计报价自助建站系统

哈尔滨门户网站设计报价,自助建站系统,免费wordpress云服务器,精品课网站建设合同//柔性数组 //定义:结构体最后一个成员允许是未知大小的数组 // 优点;在开辟空间时,连续开辟,便于释放空间,不会因多次开辟,导致释放空间出错 // 开辟空间时,节省动态开辟次数,节省空间&am…

//柔性数组
//定义:结构体最后一个成员允许是未知大小的数组
// 优点;在开辟空间时,连续开辟,便于释放空间,不会因多次开辟,导致释放空间出错
//      开辟空间时,节省动态开辟次数,节省空间,提升内存空间利用率,减少内存碎片
//      访问效率更高
// 
//

struct S
{
    int n;
    int* arr;//指针大小随系统 4/8 个字节

};
int main()
{
    struct S* ps = (struct S*)malloc(sizeof(struct S));
    ps->arr = (int*)malloc(5 * sizeof(int));//给指针arr单独开辟一个空间
    int i = 0;
    for (i = 0; i < 5; i++)
    {
        ps->arr[i] = i;
    }
    for (i = 0; i < 5; i++)
    {
        printf("%d ", ps->arr[i]);
    }
    //调整大小
    int* ptr = (int*)realloc(ps->arr, 10 * sizeof(int));
    if (ptr != NULL)
    {
        ps->arr = ptr;
    }
    for (i = 5; i < 10; i++)
    {
        ps->arr[i] = i;
    }
    for (i = 0; i < 10; i++)
    {
        printf("%d ", ps->arr[i]);
    }
    //释放
    free(ps->arr);//先释放指针内的指针指向的空间
    ps->arr = NULL;
    free(ps);//再释放指针
    ps = NULL;
    return 0;
}

struct s
{
    int n;//柔性数组成员前必须至少有一个其他成员
    int arr[];//柔性数组成员,大小可以调整,计算sizeof时不算在内的,用malloc来分配其大小
};
int main()
{
    struct s* ps = (struct s*)malloc(sizeof(struct s) + 5 * sizeof(int));//24个字节的空间
    //struct s 的大小为4个字节,剩余的20个字节分配给柔性数组成员,连续开辟的空间
    ps->n = 100;
    int i = 0;
    for (i = 0; i < 5; i++)
    {
        ps->arr[i] = i;//0 1 2 3 4
    }
    struct s* ptr = (struct s*)realloc(ps, 44);
    if (ptr != NULL)
    {
        ps = ptr;
    }
    for (i = 5; i < 10; i++)
    {
        ps->arr[i] = i;
    }
    for (i = 0; i < 10; i++)
    {
        printf("%d ", ps->arr[i]);
    }
    //释放
    free(ps);
    ps = NULL;

    return 0;
}
void getmemory(char* p)
void getmemory(char** p)
{
    *p = (char*)malloc(100);
    //p = (char*)malloc(100);//没有free 形参p开辟的动态空间,且无法找到,导致内存泄漏
}
void test(void)
{
    char* str = NULL;
    //getmemory(str);//此时传的是值,p不能改变str的内容
    getmemory(&str);
    strcpy(str, "hello world");//此时拷贝指向的是空指针,解引用NULL,拷贝失败,程序崩溃
    printf(str);
    free(str);
    str = NULL;
}
char* getmemory(void)
{
    char p[] = "hello world";
    return p;//返回栈空间地址,内容已销毁
}
void test(void)
{
    char* str = NULL;
    str = getmemory();
    printf(str);
}
int main()
{
    test();
    return 0;
}

http://www.mmbaike.com/news/76905.html

相关文章:

  • 百度画一画关键词排名优化方法
  • 咖啡网站源码新闻发布
  • 同创企业网站建设杭州排名推广
  • 服务器怎么限制ip访问网站吗广告优化师是做什么的
  • 网络营销推广好做吗成都seo顾问
  • 宿州网站建设哪家公司好批量查询收录
  • 武汉网站seo诊断网络广告销售
  • 网站robots.txt检测持啊传媒企业推广
  • 广告设计工资高吗宁波搜索引擎优化seo
  • jsp做的网站后台信息东莞网站推广宣传
  • 做酒网站网站优化入门免费教程
  • 自己做网站赚钱河南网站定制
  • 网站设计策划案线上宣传方式有哪些
  • 网站没备案会怎么样网络平台有哪些
  • 深圳品牌服装批发市场优化设计七年级上册数学答案
  • 装饰公司名字起名大全广州百度seo 网站推广
  • 怎么增加网站流量新站点seo联系方式
  • 浙江华企网站做的咋样网络营销活动策划方案
  • 简单网站制作网站规划
  • 阿里巴巴做网站客服创建网站的流程是什么
  • 自己做的美食分享到网站品牌咨询
  • 网站建设后备案多少钱天津百度分公司
  • 手机网站优化市场调研报告的基本框架
  • 怎么快速推广自己的二维码seo搜索引擎优化人员
  • 买了域名和空间怎么做网站松原新闻头条
  • 做网站哪家靠谱网站广告调词软件
  • 企业手机网站建设机构企业网络营销系统分析报告
  • 租用外国服务器赌博网站建设长沙seo网站推广
  • 苗木网站什么做商丘网站优化公司
  • 做一个模板网站多少钱百度关键词竞价和收费的方法