評價: 0 回應: 0 閱覽: 89
置頂

指標指定給指標問題

以下是部分程式碼

#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>

void map(double *A);
int main(){
  double *A,*B;
  int i;

  A=(double *)malloc(sizeof(*A)*32);
  for(i=0;i<32;i++)
    *(A+i)=i;
  map(A);

  free(A); //這邊在free時會損毀
  return 0;
}

void map(double *A){
  int i;
  double *B;
  B=(double *)malloc(sizeof(*B)*32);
  B=A;  //這種寫法有問題

  //如果改成以下這樣就不會有問題了
  for(i=0;i<32;i++)
    *(B+i)=*(A+i);

  free(B);
}

我想問一下,為什麼不能直接address mapping?
而要每個值指定呢?

 

會員登入 (先登入會員才能回覆留言喔!)

Facebook留言