課程
/后端開發(fā)
/C
/C語言入門
內(nèi)存空間不能重疊什么意思?
什么情況會重疊?
2017-09-23
源自:C語言入門 6-8
正在回答
內(nèi)存重疊:拷貝的目的地址在源地址范圍內(nèi)。所謂內(nèi)存重疊就是拷貝的目的地址和源地址
有重疊。
舉個內(nèi)存重疊環(huán)境的例子:
?
int?main()?
{char?*p?=?NULL;?
p=(char*)malloc(100);?
memcpy(p,"123456789",strlen("123456789"));?//
會等到錯誤的結(jié)果,有一個長度參數(shù),只能拷
貝
cnt
個
//
字節(jié)就結(jié)束了
printf("before?p?=%s\n",p);?
strcpy(p+1,p);?//
注意:這里重疊了,而
strcpy
是根據(jù)判斷原串中的
'\0'?
printf("after?p?=%s\n",p);?
free(p);?
}?
舉報(bào)
C語言入門視頻教程,帶你進(jìn)入編程世界的必修課-C語言
1 回答s1要有足夠的空間來容納要復(fù)制的字符串???
3 回答4、strcat在使用時s1與s2指的內(nèi)存空間不能重疊
2 回答使用strcat(s1,s2)時,必須要先定義s1的長度嗎,而且所定義的長度要大于s1和s2的長度之和嗎
2 回答為什么strcat(s2,s3); strcat(s1,s2);不能這樣寫?
1 回答先strcat(s2,s3),然后strcpy(s1,s2)
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2017-10-13
內(nèi)存重疊:拷貝的目的地址在源地址范圍內(nèi)。所謂內(nèi)存重疊就是拷貝的目的地址和源地址
有重疊。
舉個內(nèi)存重疊環(huán)境的例子:
?
int?main()?
{char?*p?=?NULL;?
p=(char*)malloc(100);?
memcpy(p,"123456789",strlen("123456789"));?//
會等到錯誤的結(jié)果,有一個長度參數(shù),只能拷
貝
cnt
個
?
//
字節(jié)就結(jié)束了
?
printf("before?p?=%s\n",p);?
strcpy(p+1,p);?//
注意:這里重疊了,而
strcpy
是根據(jù)判斷原串中的
'\0'?
printf("after?p?=%s\n",p);?
free(p);?
}?