我碰到一些很奇怪的(至少對我來說),而我在讀一個C教程:爲什麼在傳遞數組作爲參數時使用一個自由維?
void foo(char arr[]){
}
void main(){
char old_buffer[100];
foo(old_buffer); //Working??!
char arr2[] = old_buffer; //Error!
}
與錯誤註釋的行我很清楚,old_buffer被當作一個地址,所以這個可以不起作用,因爲數組缺少應該分配多少內存的信息。但是,爲什麼這是在一個函數的頭部工作? 感謝您的支持:)
你的意思是,它爲什麼在'void foo(char arr [])'中工作? –
是的,正好:) – user2352375
'char * arr2 = old_buffer'和'char * arr2 [] = {old_buffer};'都可以工作... –