指针值问题
三元组.hStatus InitTriplet (Triplet T,ElemType v1,ElemType v2,ElemType v3){
T=(ElemType *)malloc(3*sizeof(ElemType));
if(!T) exit(OVERFLOW);
T[0]=v1; T[1]=v2; T[3]=v3;
printf("%d\n",&T);
return OK;
}
代码:
#include<stdio.h>
#include<stdlib.h>
#define OK 1
#define OVERFLOW -2
typedef int ElemType;
typedef ElemType *Triplet;
typedef int Status;
#include"三元组.h"
main(){
int v1,v2,v3,*T=0;
v1=522; v2=5211; v3=5877;
InitTriplet(T,v1,v2,v3);
printf("%d",T[0]);
}
编写完成后能通过编译,但是运行后显示停止工作。我用printf("%d",&T);获得了三元组.h和代码里面的指针,这两个完全不同,为什么?InitTriplet(T,v1,v2,v3);不应该是将指针值赋给三元组.h中的T了吗?他两个的值应该是一样的。