strcat函數(shù)用法 關(guān)于strcat函數(shù)?
關(guān)于strcat函數(shù)?一般來(lái)說(shuō),對(duì)于strcat,第一個(gè)參數(shù)指向的內(nèi)存地址必須是可寫(xiě)的。因此,S1=“ABC”的實(shí)際功能是將常數(shù)區(qū)中“ABC”的第一個(gè)地址賦給S1,并且常數(shù)區(qū)中的內(nèi)存不允許順序修改,因
關(guān)于strcat函數(shù)?
一般來(lái)說(shuō),對(duì)于strcat,第一個(gè)參數(shù)指向的內(nèi)存地址必須是可寫(xiě)的。因此,S1=“ABC”的實(shí)際功能是將常數(shù)區(qū)中“ABC”的第一個(gè)地址賦給S1,并且常數(shù)區(qū)中的內(nèi)存不允許順序修改,因此strcat的執(zhí)行將失敗。它作為堆棧內(nèi)數(shù)組更改為S1[]。生存空間只是在函數(shù)的生命周期中,在函數(shù)的生命周期中,內(nèi)存地址是可讀寫(xiě)的,因此可以成功地進(jìn)行更改。類(lèi)似地,如果您將代碼修改為以下形式,您還可以成功地執(zhí)行char*S1=(char*)malloc(6*sizeof(char))strcpy(S1,“ABC”))strcat(S1,“def”)put(S1)free(S1)。Malloc分配存儲(chǔ)在堆上,堆是用戶管理的內(nèi)存區(qū)域,也是可讀寫(xiě)區(qū)域。