ho19_3.c

来自「Software Development in C: A Practical A」· C语言 代码 · 共 79 行

C
79
字号
#include <stdio.h>
#include <stdlib.h>

#define	TOTAL_ROWS	10
#define TOTAL_COLS	20


typedef enum
{
	FALSE,
	TRUE
} boolean;


int main()
{
	int i,j;
	char **allRows=NULL;
	char *oneRow=NULL;
	char tempChar;
	boolean memoryError=FALSE;

	allRows = calloc(TOTAL_ROWS,sizeof(char *));
	if (allRows == NULL)
	{
		memoryError=TRUE;
	}
	else
	{
		for (i=0,tempChar='A';
			 (i<TOTAL_ROWS) && (!memoryError);
			 i++)
		{
			allRows[i] = calloc(TOTAL_COLS,sizeof(char));
			if (allRows[i] == NULL)
			{
				memoryError=TRUE;
				for (j=0;j<i;j++)
				{
					free(allRows[j]);
				}
				free(allRows);
			}
			else
			{
				oneRow = allRows[i];
				for (j=0;(j<TOTAL_COLS) && (!memoryError);j++)
				{
					oneRow[j] = tempChar++;
					if (tempChar>'z')
					{
						tempChar = 'A';
					}
				}
			}
		}

		for (i=0;(i<TOTAL_ROWS) && (!memoryError);i++)
		{
			printf("Row %d:%s\n",i,allRows[i]);
		}
	}

	if (memoryError)
	{
		printf("Could not allocate memory. Program aborting...\n");
	}
	else
	{
		for (i=0;i<TOTAL_ROWS;i++)
		{
			free(allRows[i]);
		}
		free(allRows);
	}

	return (0);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?