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++的话,最好自己封装一个类,在类里实现动态内存空间的管理。

  • 相关阅读:
    3、UML中的类图及类图之间的关系
    2、GoF的23种设计模式
    1、软件设计模式概念
    枚举
    泛型
    MySQL
    蚁群算法MATLAB解VRP问题
    蚁群算法MATLAB解TSP问题
    模拟退火解TSP问题MATLAB代码
    模拟退火学习
  • 原文地址:https://www.cnblogs.com/joeblackzqq/p/2014170.html
Copyright © 2011-2022 走看看