[問題] strdup 的功用??
今天看到的一段程式碼不懂它的作用...
只知道他是複製一個同樣的大小的字串
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
char * ptr;
ptr = strdup("123456"); // ##
ptr[2]='A';
printf("%s",ptr);
system("PAUSE");
return 0;
}
請問為什麼 ## 部分一定要加strdup ??
為啥直接用 ptr = "123456"; 會出現segmentation fault??
在 ptr = "123456"; 時,我印 ptr[2] 可以正確印出 3
感謝各位高手指教 :)
--
What is broken is broken.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.37.167.74
※ 編輯: Maxey 來自: 114.37.167.74 (09/22 21:24)
→
09/22 21:28, , 1F
09/22 21:28, 1F
→
09/22 21:30, , 2F
09/22 21:30, 2F
→
09/22 21:31, , 3F
09/22 21:31, 3F
→
09/22 21:37, , 4F
09/22 21:37, 4F
→
09/22 21:42, , 5F
09/22 21:42, 5F
→
09/22 21:44, , 6F
09/22 21:44, 6F
推
09/22 21:48, , 7F
09/22 21:48, 7F
→
09/22 22:48, , 8F
09/22 22:48, 8F
→
09/23 14:54, , 9F
09/23 14:54, 9F
→
09/23 21:59, , 10F
09/23 21:59, 10F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章
11
38