70,024
社区成员




#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdio.h>
#include<string.h>
struct Ateacher
{
char name[64];
char *a_name;
int age;
//char title[128];
};
void printArray1(struct Ateacher *pArray, int num)
{
int i = 0;
for (i = 0; i < num; i++)
{
printf("\n%d ", pArray[i].age);
printf("%s ", pArray[i].name);
printf("%s ", pArray[i].a_name);
}
}
void sortArray1(struct Ateacher *pArray, int num)
{
int i = 0;
int j = 0;
//int temp = 0;
struct Ateacher temp;
for (i = 0; i < num; i++)
{
for (j = i + 1; j < num; j++)
{
if (pArray[i].age > pArray[j].age)
{
temp = pArray[i];
pArray[i] = pArray[j];
pArray[j] = temp;
}
}
}
}
struct Ateacher* createTArray(int count)
{
struct Ateacher* p = (struct Ateacher*)malloc(count * sizeof(struct Ateacher));
if (p == NULL)
{
return NULL;
}
for (int i = 0; i < count; i++)
{
memset(&p[i], 0, sizeof(struct Ateacher));
p[i].a_name = (char *)malloc(128 * sizeof(char));
memset(p[i].a_name, 0, sizeof(128 * sizeof(char)));
}
return p;
}
int freeTArray(struct Ateacher* myarray, int count)
{
struct Ateacher* p = NULL;
if (myarray == NULL)
{
return;
}
for (int i = 0; i < count; i++)
{
p = myarray[i].a_name;
if (p != NULL)
{
free(p);
p = NULL;
}
}
if (myarray != NULL)
{
free(myarray);
}
}
void main()
{
//struct Ateacher tArray[10];
struct Ateacher *tArray = createTArray(4);
for (int i = 0; i < 4; i++)
{
//int tmp = 0;
printf("请输入age:");
scanf("%d", &tArray[i].age);
printf("请输入名称:");
scanf("%s", &tArray[i].name);
printf("请输入别名:");
scanf("%s", tArray[i].a_name);
}
printf("排序前:\n");
printArray1(tArray, 4);
printf("排序后:\n");
sortArray1(tArray, 4);
printArray1(tArray, 4);
freeTArray(tArray, 4);
tArray->a_name = NULL;
tArray = NULL;//为什么把它赋值位NULL,就报错,我觉得没有问题
system("pause");
}