置頂
指標指定給指標問題
以下是部分程式碼
#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?
而要每個值指定呢?
會員登入
(先登入會員才能回覆留言喔!)