看板 b99902HW 關於我們 聯絡資訊
我在系上linux嘗試 test.c ~ 1 #include <stdio.h> 2 #include <unistd.h> 3 4 int main(int argc,char** argv){ 5 6 if(argc!=3) exit(0); 7 else 8 printf("%s\n",crypt(argv[1],argv[2])); 9 return 0; 10 } >>gcc test.c -lcrypt >>./a.out apple am 卻會出現Segmentation fault (我看manual page,crypt應該是: char *crypt(const char *key, const char *salt); 實際上得到的return vale 卻是int...Orz) 我做錯了甚麼.. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.4.192
LoganChien:#define _XOPEN_SOURCE 09/21 12:31
ianlini:你怎麼知道return value是int? 09/21 16:00
marrvosal:樓上 我猜 compile 時說不是能把 int assign 給 char 09/21 16:39
我改成 char* temp = crypt("apple","am"); 並在前面#define _XOPEN_SOURCE 我還是得到 warning: initialization makes pointer from integer without a cast [enabled by default] ※ 編輯: OppOops 來自: 140.112.4.192 (09/22 15:05)
OppOops:google一下一樓的 我還是重新再看看缺甚麼@@" 09/22 15:08
LoganChien:放在第一行。所有 include 之前 09/23 14:44
OppOops:樓上一語道破 ~"~ 感謝 09/23 17:47