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

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

创建二级指针动态数组,模拟指针数组。里面存放键盘输入的字符串,回车键确定输入,-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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 5G网络切片技术_什么让我读懂了什么

    5G网络切片技术_什么让我读懂了什么据说人类进入现代,最先被工业化的几种技术之一就是做面包。1921年,人类首次发明了面包切片机,随后切片面包开始流行起来。近100年后的今天,继切片面包之后,人类又将面临一件切片技术上的大事——网络切片。与人类走进工业化一样,网络切片也将是人类信息化史上的一次跨越式迈步。何为网络切片?我们经常把网络比喻为交通,车辆是用户,道路是网络。随着车辆的增多,城市道路变得拥堵不堪。为了缓解交通拥堵,交通部门不得不根据不同的车辆、运营方式进行分流管理,比如设置BRT快速公交通道,非机动车专用通道等。网络亦是如此

  • webpack版本不兼容_怎么安装webpack在其他盘

    webpack版本不兼容_怎么安装webpack在其他盘运行webpack时报错:Cannotfindmodule’webpack/bin/config-yargs’Thisisprobablynotaproblemwithnpm.Thereislikelyadditionalloggingoutputabove.可能是版本兼容问题,更正后的版本:”devDependencies”:{“webpack”:”^4.39.2″,”webpack-cli”:”^3.3.12″,”webp

  • hdfs常用操作命令

    hdfs常用操作命令hdfs常用操作命令

  • 英语六级词汇表_英语六级词汇表完整版带音标

    英语六级词汇表_英语六级词汇表完整版带音标abbreviationn.缩短,缩写abidev.容忍,忍受abolishvt.废止,废除(法律、制度、习俗等)absenta.不在场的;缺乏的a.不在意的absorptionn.吸收;专注abstractvt.摘要,提炼,抽象化adj.抽象的absurdadj.荒谬的,可笑的abundancen.充裕,多量accessoryad…

  • 遗传算法python(含例程代码与详解)「建议收藏」

    遗传算法python(含例程代码与详解)「建议收藏」遗传算法1.算法简介2.算法流程3.算法示例4.算法实现5.算法应用

  • 4G与5G网络有哪些区别

    4G与5G网络有哪些区别一、帧结构比较4G和5G相同之处帧和子帧长度均为:10ms和1ms。 最小调度单位资源:RB  4G和5G不同之处1);子载波宽度4G:固定为15kHz。 5G:多种选择,15kHz、30kHz、60kHz、120kHz、240kHz,且一个5G帧中可以同时传输多种子载波带宽。  2);最小调度单位时间4G:TTI,1毫秒; 5G:slot,1/32毫秒~1毫秒,取决于子载波带宽。 此外5G新增mini-slot,最少只占用2个符号。  3);每子帧时

发表回复

您的电子邮箱地址不会被公开。

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