可能重複的字符串:
Dynamic String Input - using scanf(「%as」)
strcmp with pointers not working in C掃描中使用指針用C
爲以下才算好碼?我不應該在某處使用malloc嗎?我能夠編譯這個,它工作,但我覺得它不應該有。
#include <stdio.h>
int main (void) {
char *name;
printf("Whats your name? ");
scanf("%s", &name);
printf("\nyour name is %s", &name);
return 0;
}
如果我想修改名稱,會發生什麼情況?我會怎麼做呢?
編輯:我真的只是尋找最有效和最正確的方式做到這一點使用指針。我假設malloc是必要的。
這是一個非常糟糕的代碼。我建議你首先了解內存分配是如何在C中工作的。你正在使用未初始化的指針。 – m0skit0
1.不是重複的,我是另一張海報。類似的問題,但不一樣。 2.你有什麼建議,應該怎麼做?我意識到這是錯誤的,但我似乎無法找到一個好的解決方案。 – kyle
比使用未初始化的指針更糟糕,您正在使用未初始化的指針的**地址**。即使你分配了內存並指向了'name',它在scanf()和printf()調用中仍然是錯誤的。 – WhozCraig