好吧,我知道malloc
或calloc
可用於動態分配,但作爲一個新CI不知道如何使用我輸入多個輸入,比如例如TC中分配的內存++中,我們有這樣的代碼使用malloc()進行多輸入?
#include <stdio.h>
#include <string.h>
#include <alloc.h>
#include <process.h>
int main(void)
{
char *str;
/* allocate memory for string */
if ((str = (char *) malloc(10)) == NULL)
{
printf("Not enough memory to allocate buffer\n");
exit(1); /* terminate program if out of memory */
}
/* copy "Hello" into string */
strcpy(str, "Hello");
/* display string */
printf("String is %s\n", str);
/* free memory */
free(str);
return 0;
}
在這樣的代碼中,我們將Hello放在我們現在分配的內存中,應該給我們留下更多4個字符空間,我們應該將這些空間添加到這些空間中。
當用戶被問及輸入的數量,他說10或100時,我想實現這個想法,然後程序輸入數據並存儲它們並將數據打印到屏幕上。
所以你要根據用戶輸入分配的大小? –
您可能缺少'#include'指令。如果你想部分填充一些'malloc'-ed或'calloc' -ed動態分配的堆區,你可能需要做一些家務管理,例如,與當前和結束索引或指針。你可能想用'getline'來完全讀取一個'malloc'-ed行。 –
在C中,不需要將調用結果強制轉換爲'malloc()'/'calloc()'。也不建議這樣做,因爲這可能會隱藏錯誤,因爲在您的示例中很可能是這種情況(請參閱* Basile *的註釋)。 – alk