亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 2775 | 回復(fù): 11
打印 上一主題 下一主題

[C] 談?wù)撘粋問題,關(guān)于strcpy [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2009-08-12 15:43 |只看該作者 |倒序瀏覽
main()
{
        char a[10]="1111111111";
        char b[13];

        strcpy(b,a,10);
        printf("%s\n",b);
}


上面的代碼
沒有加任何頭問題件
在aix上編譯的時候能通過
而且能正常運(yùn)行

請問各位
這是為何

論壇徽章:
0
2 [報告]
發(fā)表于 2009-08-12 15:48 |只看該作者
沒有用過aix,
aix這么智能,任何文件都不用包含

論壇徽章:
0
3 [報告]
發(fā)表于 2009-08-12 16:01 |只看該作者
主要是對aix不熟悉
不清楚為什么strcpy使用了三個參數(shù)
竟然也不報錯
當(dāng)然在加上#include <string.h>
之后
編譯就報錯了

論壇徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52雙子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午馬
日期:2013-10-18 21:43:38
4 [報告]
發(fā)表于 2009-08-12 16:07 |只看該作者
能正常運(yùn)行?我這里core了,你怎么怎么編譯的

論壇徽章:
0
5 [報告]
發(fā)表于 2009-08-12 16:18 |只看該作者
cc test.c
./a.out
1111111111

論壇徽章:
2
青銅圣斗士
日期:2015-11-26 06:15:59數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2016-07-24 06:20:00
6 [報告]
發(fā)表于 2009-08-12 16:48 |只看該作者

回復(fù) #1 fish-fly 的帖子

C可以隱式聲明函數(shù)原型(C99去掉了這個特性)。
你塞給它100個參數(shù)都可以……  編譯時發(fā)現(xiàn)不了這個錯誤。
鏈接時通常也能找到strcpy函數(shù), 鏈接器通常也不會檢查參數(shù)不匹配的錯誤。


加上#include <string.h> 后, 得到strcpy的原型聲明, 編譯時就能發(fā)現(xiàn)這個錯誤。

論壇徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52雙子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午馬
日期:2013-10-18 21:43:38
7 [報告]
發(fā)表于 2009-08-12 17:29 |只看該作者
原帖由 fish-fly 于 2009-8-12 16:18 發(fā)表
cc test.c
./a.out
1111111111


我這里不行的,AIX P6

論壇徽章:
0
8 [報告]
發(fā)表于 2009-08-12 20:11 |只看該作者

回復(fù) #1 fish-fly 的帖子

加原型出錯 就不用說了

不加正確也
很簡單  因為 strcpy( dest, src)是這樣的
所以沒問題

strcpy (dest, src, n);   你這么寫  是傳遞3個參數(shù)給strcpy
但strcpy只看見2個參數(shù)   ebp+8和ebp+12
而最后的n,     ebp+16就被丟棄了   對strcpy不會有任何影響(因為在高地址處)

在86 linux上面敢肯定是這樣的 其他體系的 不清楚是如何轉(zhuǎn)化為匯編的


而有的人回出錯 是因為 a[10]是10個元素 所以最后的'\0'沒了
因此strcpy 回一直訪問a+9后面的地址 直到碰到'\0'     所以很容易掛的。。。。就算不掛
他還要copy給b 而b也就13個大小  所以  也很有可能掛。。。。


所以 樓主  你RP很高

。。。
其他掛了的都面壁去  肯定平時壞事做多了

[ 本帖最后由 snyh 于 2009-8-12 20:18 編輯 ]

論壇徽章:
0
9 [報告]
發(fā)表于 2009-08-12 21:18 |只看該作者
ls的
其實我這是隨便寫個例子

主要是想弄清為什么編譯不報錯

OwnWaterloo
說的很清楚了

感謝各位

論壇徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52雙子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午馬
日期:2013-10-18 21:43:38
10 [報告]
發(fā)表于 2009-08-13 08:56 |只看該作者
試了下用c99編譯給警告了而不是錯誤。
還真沒注意LZ寫了10個‘1’
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP