struct.c

来自「基于网络编程的例子」· C语言 代码 · 共 42 行

C
42
字号
/*
 * struct.c - debug a program with a struct
 */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void err_quit(char *msg);

int main(int argc, char *argv[])
{
	int i = 0;
	struct s {
		int index;
		char *name;
	} *S;

	/* incorrect memory allocation */
	if((S = malloc((sizeof(S)) * argc)) == NULL)
		err_quit("(__LINE__)malloc");

	while(i < argc) {
		S[i].index = i;
		if((S[i].name = malloc(strlen(argv[i]) + 1)) == NULL)
			err_quit("(__LINE__)malloc");
		strcpy(S[i].name, argv[i]);
		++i;
	}

	/* Now, display the values in the array */
	for(i = 0; i < argc; ++i)
		fprintf(stdout, "%d: %d, %s\n", i, S[i].index, S[i].name);
	
	exit(EXIT_FAILURE);
}

void err_quit(char *msg)
{
	perror(msg);
	exit(EXIT_FAILURE);
}

⌨️ 快捷键说明

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