無論出於何種原因,下面的代碼打印(空):scanf函數動態分配
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char *foo;
scanf("%ms", &foo);
printf("%s", foo);
free(foo);
}
我試圖爲動態字符串分配內存,但正如我剛纔所說我的程序只是輸出(空)。我通過使用getche和realloc來創建一個函數來解決這個問題,但是由於我還必須編程如果用戶輸入退格鍵,選項卡等等時會發生什麼,所以它似乎幾乎毫無意義。但正如我所說的,這只是一個工作周圍,我寧願知道爲什麼上面的代碼是不工作...
附加信息:
我現在用的是PellesçIDE v7.00,並與C11標準編譯
'%ms'打算做什麼? – 2012-08-13 00:18:44
@Greg m標誌應動態分配內存以包含輸入。 – 2012-08-13 00:22:17
這是不是標準?我沒有在我的'scanf'文檔中看到。 – 2012-08-13 00:23:17