zoukankan      html  css  js  c++  java
  • C语言实现二维数组操作--元素个数确定

    代码如下:

    /*
    	本例用于测试C语言实现二维数组的创建、输出和内存释放
    	结论:二维数组只适合数组元素个数确定的情况,如果元素个数不确定,最好是用链表。
    */
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    #define N 5
    
    // 创建并初始化二维数组
    char** get2DArray(int n)
    {
    	int i = 0;
    	char temp[256] = {0};
    	char **p = malloc(sizeof(char*) * n);
    	for(i = 0; i < n; i++)
    	{
    		p[i] = malloc(256);
    		sprintf(temp, "hello%d", i);
    		strcpy(p[i], temp);
    	}
    	return p;
    }
    
    // 输出(显示)二维数组
    void display2DArray(char *p[], int n)
    {
    	int i;
    	if(p != NULL)
    	{
    		for(i = 0; i < n; i++)
    		{
    			printf("p[%d]=%s\n", i, p[i]);
    		}
    	}
    }
    
    // 释放二维数组
    void free2DArray(char *p[], int n)
    {
    	int i;
    	if(p != NULL)
    	{
    		for(i = 0; i < n; i++)
    		{
    			if(p[i] != NULL)
    				free(p[i]);
    		}
    		free(p);
    	}
    }
    
    void main()
    {
    	char **p = get2DArray(N);
    	display2DArray(p, N);
    	free2DArray(p, N);
    }
    

    结论:

    1. 二维数组只适合数组元素个数确定的情况,如果元素个数不确定,最好是用链表。

    2. 如果是C++的话,最好自己封装一个类,在类里实现动态内存空间的管理。

  • 相关阅读:
    java 菜单
    QT 让信号自由飞翔(骚操作)
    QT editLine 无法输入的问题
    易经初学体会
    Cgroup
    springboot pom 引用集合
    使用ab测试工具 进行并发测试
    intellij 设置-试验过的
    【iis错误码】IIS 服务 这些年遇到的错误码
    101个创业失败案例背后的20大原因
  • 原文地址:https://www.cnblogs.com/joeblackzqq/p/2014170.html
Copyright © 2011-2022 走看看