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

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

创建二级指针动态数组,模拟指针数组。里面存放键盘输入的字符串,回车键确定输入,-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)
上一篇 2021年8月18日 下午10:00
下一篇 2021年8月18日 下午10:00


相关推荐

  • ubuntu安装vscode并配置python环境(使用anaconda)「建议收藏」

    ubuntu安装vscode并配置python环境(使用anaconda)「建议收藏」参考文章和视频https://www.youtube.com/watch?v=h0HbFnb8bC8https://python.tutorials24x7.com/blog/how-to-install-visual-studio-code-for-python-on-ubuntustep1-安装VSCODE在terminal中输入sudosnapinstall–classiccode等待下载完成后,在terminal中输入code即可启动vscodestep2-安装插件参

    2025年11月21日
    4
  • c语言中的offset_c语言中/和%的区别

    c语言中的offset_c语言中/和%的区别今天看libPhenom源代码,看到他们使用的JSON解析库参考的是JanssonJSON解析库。于是就去网上查了这个库,找到了官方网站:http://www.digip.org/jansson/。找了一下发现在Github上能够下载源代码,于是下载了源代码来瞅瞅。    看了一会儿发现有一块代码一直看不明白,就比如说如下的代码:json_t*json_object(void)

    2022年8月22日
    8
  • Java判断回文字符串_java将字符串反转输出

    Java判断回文字符串_java将字符串反转输出java判断回文字符串几种简单的实现:1.将字符串倒置后逐一比较,实现如下:publicclassHuiWenTest{/***@SERLIN*/publicstaticvoidmain(String[]args){Stringstr=””;System.out.println(“请输入一个字符串”);Scannerin

    2022年5月3日
    49
  • 线程池不使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式[通俗易懂]

    线程池不使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式

    2022年3月11日
    38
  • 搭建SIP服务器

    搭建SIP服务器在我的上一篇文章中已经介绍如何通过 SIP 软电话直接通话 但是如果需要支持更多用户互相通话 同时基于安全考虑 需要对用户帐户登录进行验证控制 这些情况下就需要建立 SIP 服务器 SIP 服务器的作用 nbsp nbsp nbsp nbsp nbsp nbsp 呼叫控制和处理功能 业务提供 支持功能 用户管理功能 协议处理功能 路由处理 接入认证 计费信息采集 操作维护 网管功能 互通功能 安全功能 可选 黑白名单功能 拥塞控制功能 可

    2026年3月18日
    2
  • GitHub开源的10个超棒后台管理面板

    GitHub开源的10个超棒后台管理面板项目开发中后台管理平台必不可少,但是从零搭建一套多样化后台管理并不容易,目前有许多开源、免费、样式丰富的后台管控面板,深夜学习简书上一位大神的博文,共总结10项优秀后台管理控制面板(9个GitHub项目,1个在线UI框架)。

    2022年6月25日
    47

发表回复

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

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