char*指標指向值,卻還是NULL的問題

HAIYAO
各位大大好,
剛學習c++不久,對指標還是不太理解,想請問以下狀況,answer1 為什麼還是指到NULL ,而answer2確有值

char* test ( char* str) {

char* data = (char*)malloc(5);
strcpy(data, "test");
str = data;
return data;

}

int main (int argc, char** argv) {


char* answer1 = NULL;
char* answer2 = NULL;

answer1 = test(answer2);

printf("answer1 = %s\n", answer1);
printf("answer2 = %s\n", answer2);
printf("end\n");
}

結果:
answer1 = test
answer2 = (null)
end


P陳
1.
你題目 ,answer1 為什麼還是指到NULL ,而answer2確有值
與 結果不一致
結果:
answer1 = test
answer2 = (null)
end

2.(已知您的問題點了)
但請您想一下 answer2 為什麼要會有值?


HAIYAO
感謝回復,不好意思,題目打反了,應該是 answer2 為什麼還是指到NULL ,而answer1確有值。

因為我覺得 answer2 這個指標變數應該等於test()中的str,所以當str指向data時,answer2應該也要有值,但從結果來看,兩個是不一樣的,所以我不太懂為什麼不太一樣?
P陳
A=100
b=100

A=SumValue(b)
算完後
A=C+100=200
B=100 因為B沒有被動到

function sumvalue(C)
C=C+100
return C
End function

A=SumValue(b)
算完後
A=C+100=200
B才會是200 (因為以位罝參照 C=B)

function sumvalue(Byref C)
C=C+100
return C
End function
--------------------------
還不清楚的話請 GOOGLE Byref 與 Byval 的差別





回到頂部