第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

下面這個情況是,設(shè)已有定義: char *st="how are you"; 請問正確的是?

下面這個情況是,設(shè)已有定義: char *st="how are you"; 請問正確的是?

慕尼黑的夜晚無繁華 2021-07-21 17:15:55
A) char a[11], *p; strcpy(p=a+1,&st[4]);B) char a[11]; strcpy(++a, st);C) char a[11]; strcpy(a, st);D) char a[], *p; strcpy(p=&a[1],st+2);能不能分析下錯在哪里?
查看完整描述

2 回答

?
SMILET

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個贊

char *st="how are you";
這個定義有問題吧。。。字符串沒地方放呀。。。
應(yīng)該是
char st[]="how are you";
A 對。
B a是數(shù)組名,沒法自增。
C a只有11個字符,而st有11個字符,再加上一個'\0'是12個,不夠用。
D 沒給a的長度。

那這些內(nèi)存什么時候釋放呢?
比如
char st[]="how are you";
是在聲明所在的函數(shù)結(jié)束的時候釋放,但是
char *st="how are you";
這樣聲明的話,st指針可以指向別的東西。就不可能在這個指針消亡的時候釋放掉"how are you"所占的內(nèi)存。



查看完整回答
反對 回復(fù) 2021-07-25
?
翻翻過去那場雪

TA貢獻(xiàn)2065條經(jīng)驗(yàn) 獲得超14個贊

st被定義為指針類型,由C自動分配內(nèi)存首址,并且包括首址在內(nèi)的連續(xù)向后12個內(nèi)存地址內(nèi)各存放一個字符,等價于char st[]="how are you"。
如果是全局變量,程序沒執(zhí)行完畢就一直不會釋放,由于定義指針st時已經(jīng)賦值,st也不會指向其他已被占用的有用內(nèi)存地址。這么說吧,它除了在被引用時和直接定義的不定長度數(shù)組略有區(qū)別(比如數(shù)組名不能自增自減),其余都是可以相互交換使用的。

查看完整回答
反對 回復(fù) 2021-07-25
  • 2 回答
  • 0 關(guān)注
  • 636 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號