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

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

创建二级指针动态数组,模拟指针数组。里面存放键盘输入的字符串,回车键确定输入,-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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • modbus协议讲解及实现_MODBUS功能码

    modbus协议讲解及实现_MODBUS功能码Modbus是一种单主站的主/从通信模式。Modbus网络上只能有一个主站存在,主站在Modbus网络上没有地址,从站的地址范围为0-247,其中0为广播地址,从站的实际地址范围为1-247。Modbus通信标准协议可以通过各种传输方式传播,如RS232C、RS485、光纤、无线电等。Modbus具有两种串行传输模式,ASCII和RTU。它们定义了数据如何打包、解码的…

    2025年8月25日
    2
  • Java设计模式(二)之创建型模式:抽象工厂模式

    Java设计模式(二)之创建型模式:抽象工厂模式

    2021年4月8日
    119
  • 我是如何利用“王宝强离婚”事件来吸粉的

    我是如何利用“王宝强离婚”事件来吸粉的

    2021年9月17日
    42
  • Java实现单例模式的9种方法

    Java实现单例模式的9种方法人工智能,零基础入门!http://www.captainbed.net/inner一.什么是单例模式因进程需要,有时我们只需要某个类同时保留一个对象,不希望有更多对象,此时,我们则应考虑单例模式的设计。二.单例模式的特点1、单例模式只能有一个实例。2、单例类必须创建自己的唯一实例。3、单例类必须向其他对象提供这一实例。三.单例模式VS静态类在知道了什么是…

    2022年7月8日
    20
  • MySQL中使用LIMIT进行分页的方法

    MySQL中使用LIMIT进行分页的方法一、分页需求:客户端通过传递start(页码),pageSize(每页显示的条数)两个参数去分页查询数据库表中的数据,那我们知道MySql数据库提供了分页的函数limitm,n,但是该函数的用法和我们的需求不一样,所以就需要我们根据实际情况去改写适合我们自己的分页语句,具体的分析如下:比如:查询第1条到第10条的数据的sql是:select*fromtablelimit0,…

    2022年6月20日
    34
  • Mac配置Android开发环境

    Mac配置Android开发环境1、下载jdk和AndroidStudio下载地址如下:jdk:https://www.oracle.com/java/technologies/javase-downloads.htmlAS:https://developer.android.google.cn/studio2、安装jdk安装,一直下一步,安装完成后打开“终端”,执行命令:java-version即可查看…

    2022年7月23日
    16

发表回复

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

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