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

  免費注冊 查看新帖 |

Chinaunix

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

高手幫忙解釋一下三種指針傳遞方法的不同 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2009-07-30 15:55 |只看該作者 |倒序瀏覽
#include <stdio.h>
#include <string.h>

#define MAXLEN 1024

void LoopMove(char *pStr, int steps)
{
        int n = 0;
        char tmp[MAXLEN];

        n = strlen(pStr) - steps;
        strcpy(tmp, pStr+n);
        strcpy(tmp+steps, pStr);
        *(tmp+strlen(pStr)) = '\0';//把后面的部分進行截取
        memcpy(pStr, tmp, strlen(pStr));
        printf("%s\n", pStr);
}

int main()
{
        //方法一:輸出會產(chǎn)生段錯誤
                char *test = "testhellloworld";
       
        //方法二:輸出不會會產(chǎn)生段錯誤
                char test[] = "testhellloworld";

       
        //方法三:輸出不會會產(chǎn)生段錯誤
        //char *test = (char *)malloc(sizeof(char)*MAXLEN);
        //strcpy(test, "testhellloworld");


        LoopMove(test, 3);
        printf("%s\n", test);
        return 0;
}

幫忙解釋一下方法一產(chǎn)生段錯誤的原因

論壇徽章:
0
2 [報告]
發(fā)表于 2009-07-30 15:58 |只看該作者
因為第一個是不可寫的,所以你不能對它進行寫操作。

論壇徽章:
0
3 [報告]
發(fā)表于 2009-07-30 16:13 |只看該作者

回復(fù) #1 scudong 的帖子

//方法一:   字符串常量(存儲在常量存儲區(qū))
//方法二:   自動變量 (存儲在棧中)
//方法三:   堆變量   (存儲在堆中)

論壇徽章:
1
寅虎
日期:2014-11-30 21:25:54
4 [報告]
發(fā)表于 2009-07-30 16:16 |只看該作者
三個 test 在不同有內(nèi)存段上 :
第一個  test 在 readonly data上
第二個  test 在 stack 上
第三個  test 在 heap 上

論壇徽章:
0
5 [報告]
發(fā)表于 2009-07-30 16:31 |只看該作者
如樓上兩位所言,第一個存在 .text 段中,一般來說是只讀的,不過還是有辦法讓它可寫。
具體 man 2 mprotect

論壇徽章:
0
6 [報告]
發(fā)表于 2009-07-31 01:56 |只看該作者
原帖由 windaoo 于 2009-7-30 16:31 發(fā)表
如樓上兩位所言,第一個存在 .text 段中,一般來說是只讀的,不過還是有辦法讓它可寫。
具體 man 2 mprotect

不是.text吧,應(yīng)該是.rdate吧。

[ 本帖最后由 progliker 于 2009-7-31 02:02 編輯 ]

論壇徽章:
0
7 [報告]
發(fā)表于 2009-07-31 08:13 |只看該作者
2.13.4/1 in the c++ Standard says

    An ordinary string literal has type "array of n const char" and static storage duration.
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(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