※ 引述《"mynews" <noreplay@gmail.com>, 看板: Programming》之銘言:
: #include <stdio.h>
: #include <stdlib.h>
: #include <string.h>
: int main(void){
: char *str1="123";
: char *str4="456";
: char *str3="789";
: strcpy(str3,str4);
: exit(0);
: }
: 這程式編譯會過,但是執行會出現錯誤;string 在使用前需要配置空
: 間,不過我常在很多opensource 看到這類的用法
: char *__progname = "prog";
: 這樣用到底是不是正確的用法?安全的使用字串應該使用陣列?
: char str[20]="prog";
: 那 chr *string[50] ; (字串陣列) 這種用法安全嗎?
: 另外也有人這樣使用 chr str[]="prog";
: 到底那些用法是安全且正確?
問題不在於配置與否, 而是
你的 strcpy 的目標位置是不
能改變的 (指向 string literal)
alien
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 202.155.236.82