
数据结构构造三元组,这里用c语言为什么总是报这种错,求修改,在visiual studio一直运行不了
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef int Status;
typedef int* Triplet;
void initTriplet(Triplet T, int v1, int v2, int v3)
{
T = (Status*)malloc(3 * sizeof(Status)); //c语言动态分布内存
T[0] = v1;
T[1] = v2;
T[2] = v3;
if (!T) exit(-2);
}
void DestoryTriplet(Triplet T)
{
free(T); //释放内存;
}
void Get(Triplet T, int i, int* e)
{
Status num;
int j = 0;
while (j--)
{
num = &T[j++];
}
e = num;
}
void Put(Triplet T, int i, Status* e)
{
int num;
int j = i + 1;
while (j--)
{
num = &T[j++];
}
T[j - 1] = e;
}
void IsAscending(Triplet T)
{
if (T[0] <= T[1] && T[1] <= T[2])
printf("1");
else printf("0");
}
void IsDescending(Triplet T)
{
if (T[0] > T[1] && T[1] >= T[2])
printf("1");
else printf("0");
}
Status Max(Triplet T, Status e)
{
e = (T[0] >= T[1] ? ((T[0] >= T[2]) ? T[0] : T[2]) : ((T[1] >= T[2]) ? T[1] : T[2]));
return e;
}
Status Min(Triplet T, Status e)
{
e = (T[0] <= T[1] ? ((T[0] <= T[2]) ? T[0] : T[2]) : ((T[1] <= T[2]) ? T[1] : T[2]));
return e;
}
int main()
{
Triplet tt=NULL;
Status e=0;
initTriplet(tt, 3, 7, 8);
Put(tt, 1, e);
IsAscending(tt);
IsDescending(tt);
Get(tt, 2, e);
printf("%d", e);
printf("%d", Max(tt, e));
printf("%d", Min(tt, e));
return 0;
}