0
我有2个指向某些点结构的指针。我想要计算2点之间的距离(我不需要计算其根),所以我有这样的:奇怪的printf方程
w[0]=X[l];
w[1]=X[l+1];
d=m(w[0]->x-w[1]->x)+m(w[0]->y-w[1]->y);
printf("--TEST %d %d %d\n",w[0]->x,w[1]->x,w[0]->x-w[1]->x);
输入:X [1] =(0,1),X [L + 1] = (2,0) 输出: - 测试0 2 -1
这是为什么? 编辑:
这是一部分功能找到它发现2点与它们之间的最小距离。在主要我有这个:
X=(Punkt**)malloc(sizeof(Punkt*)*n);
Y=(Punkt*)malloc(sizeof(Punkt)*n);
int x,y;
for(int i=0;i<n;++i) {
scanf("%d %d",&x,&y);
Y[i].x=x;
Y[i].y=y;
X[i]=(Punkt*)malloc(sizeof(Punkt*));
X[i]=&Y[i];
}
Quicksort(X,0,n-1);
Punkt **wynik=find(0,n-1);
printf("%d %d\n%d %d",wynik[0]->x,wynik[0]->y,wynik[1]->x,wynik[1]->y);
我检查了Quicksort,它的工作原理应该如此。函数m:#define m(a)((a)*(a)) 只发现函数在那部分有bug。这工作,但我不想为每个坐标变量。
int trash1=w[0]->x;
int trash2=w[1]->x;
printf("--TEST %d %d %d\n",w[0]->x,w[1]->x,w[0]->x-w[1]->x,trash1-trash2);
输入:2点(0,1),(2,0) 输出:--test 0 2 -1 -2
你能提供一些更多的背景? “w”和“X”在哪里定义?你怎么知道数组中的值是你认为的值? – templatetypedef 2012-03-31 18:08:22
我的猜测是:**未定义的行为**!如果您提供有问题的类型并在代码中使用更多空间,可能会更容易发现。 – pmg 2012-03-31 18:08:56
请学习使用空格(和更好的变量名称)。 – jamesdlin 2012-03-31 18:09:37