二级指针动态数组,模拟指针数组

二级指针动态数组,模拟指针数组

创建二级指针动态数组,模拟指针数组。里面存放键盘输入的字符串,回车键确定输入,-1为退出条件。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void)
{
    char **p = NULL;
    char **prev = NULL;
    int count = 0;
    char buf[1024] = {
   0};
    int i;
    int val;

    while (1) {
        printf("input string\n");
        scanf("%s", buf);

        if (!strncmp("-1",buf, 2))
            break;

        prev = p;
        p = (char **)malloc((count + 1) *sizeof(char *));
        if (NULL == p) {
            free(prev);
            val = -1;
            goto err1;
        }
        memcpy(p, prev, count * sizeof(char *));
        free(prev);

        p[count] = (char *)malloc(strlen(buf) + 1);
        if (NULL == p[count]) {
            val = -1;
            goto err2;
        }

        memcpy(p[count], buf, strlen(buf) + 1);

        count++;
    }
    val = 0;
    for(i = 0; i < count; i++)
        printf("p[%d] =  %s\n", i, p[i]);

err2:
    free(p);

err1:    
    for(i = 0; i < count; i++)
        free(p[i]);

    return val;
}

转载于:https://www.cnblogs.com/zu-ji/archive/2012/07/03/2574794.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/110375.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • gp数据库查看建表语句_gp数据库常用命令

    gp数据库查看建表语句_gp数据库常用命令常用建表结构,根据需求自行更改即可使用!droptableifexistsrpt.rpt_bill_m;createtablerpt.rpt_bill_m(user_idSERIAL,—-自增序列acct_monthvarchar(6),bill_feenumeric(16,2),user_infotext)WITH(app…

    2022年9月4日
    2
  • 如何利用js生成二维码_前端生成二维码

    如何利用js生成二维码_前端生成二维码问题来源最近在做一个项目,有这么个需求,通过生成二维码来实现网页的分享。问题分析脑海的第一反应,当然是用js来实现,自己手写?当然不是。解决方案使用QRCode.js。QRCode.js是一个用于生成二维码的JavaScript库。主要是通过获取DOM的标签,再通过HTML5Canvas绘制而成,不依赖任何库。QRCode.js:使用JavaScript生成二维码代码编写<!DOCTYPEhtml><htmllang=”en.

    2022年10月18日
    1
  • PHP数组转换json「建议收藏」

    PHP数组转换json「建议收藏」<?php$arr=array(‘a’=>1,’b’=>2,’c’=>3,’d’=>4,’e’=>5);echojson_encode($arr);?>

    2022年6月21日
    24
  • python教程(一)·python环境搭建

    python教程(一)·python环境搭建讲述python环境的搭建,以及注意事项

    2022年7月5日
    24
  • Python IDE —— PyCharm的基本介绍「建议收藏」

    Python IDE —— PyCharm的基本介绍「建议收藏」本文由Markdown语法编辑器编辑完成。PyCharm的介绍:PyCharm是一款Python的IDE的编辑工具,它是由Jetbrains出品的产品。之前我在做Web项目,前端撰写JavaScript代码时,就是用的他们公司出品的前端开发神器WebStorm。因此,也一直对他们的产品很感兴趣,而且,如果是同一个公司的产品,在很多设置上都是相同的,也可以减少一些学习成本。PyCharm的官网地址

    2022年8月28日
    1
  • eureka集群配置_hadoop高可用集群搭建

    eureka集群配置_hadoop高可用集群搭建Eruka高可用(集群)EurekaServer高可用配置(1)高可用是什么?“高可用性”(HighAvailability)通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性如:给EurekaServer搞一个备份(2)服务同步原理多个EurekaServer之间也会互相注册为服务,当服务提供者注册到EurekaServer集群中的某个节点时,该节点会把服务的信息同步给集群中的每个节点,从而实现数据同步。因此,无论客户端访问到EurekaServer集

    2022年8月21日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号