如何在C中不使用固定長度數組的情況下輸入字符數組? 我被賦予了C中的中心字符串,並被告知不要使用固定大小的數組。C中沒有固定大小的字符數組
2
A
回答
4
創建無固定尺寸的陣列的唯一方法是通過使用malloc
,它接受要分配的存儲器的尺寸(以字節爲單位)。然後您將使用它作爲char*
,它也可以容納數組語法。 不要忘記測試返回值是非零(這是方式malloc
表明你是內存不足)。
您所使用的內存完成後,你則負責與free
其釋放回系統。
例如:
size_t size = 42; // you can read this from user input or any other source
char* str = malloc(size);
if (str == 0) {
printf("Insufficient memory available\n");
}
else {
// Use the memory and then...
free(str);
}
3
查找的malloc
和realloc
的功能。
我假定非固定尺寸是指動態分配的數組 - 其可以使用malloc
獲得。
0
你可以做dynamic memory allocation by malloc
。
int main()
{
int i;
printf ("How long do you want the string? ");
scanf ("%d", &i);
char *buffer = malloc (i+1);
}
相關問題
- 1. C#設置沒有固定大小的數組的大小
- 2. C#中的固定字符串大小#
- 3. 動態字符數組,大小固定?
- 4. 在堆棧上聲明固定大小的字符數組C++
- 5. C#數組沒有指定的大小
- 6. 固定大小的數組
- 7. 固定大小的字節數組
- 8. C++字符串到固定大小的字符數組可能嗎?
- 9. C(動態)數組(固定大小)
- 10. 定義一個沒有固定大小的雙數組?
- 11. JS多維數組有沒有固定的大小
- 12. 具有模板參數相關大小的固定大小C數組
- 13. 在numpy的固定大小的數組中取出固定大小的約束
- 14. 將字符串轉換爲固定大小的字節數組中的字段
- 15. C++如何將大字符串放入固定char數組中
- 16. 如何將數組分解爲固定大小的小數組? (在C中)
- 17. 的extern數組在C沒有大小
- 18. 調整字符數組的大小c
- 19. 固定大小的數組的向量
- 20. 如何在C++中聲明一個數組的固定大小
- 21. 在C++中傳遞固定大小的數組?
- 22. 如何動態增加C#中固定數組的大小?
- 23. cuda固定大小的全局數組
- 24. 切片到固定大小的數組
- 25. MongoDB固定大小的數組實現
- 26. C++對象是否有固定大小?
- 27. C++字符數組大小驗證
- 28. C++固定大小鏈表
- 29. 字符串分割到固定大小的組
- 30. Novacode DocX C#中的固定表大小#
**電話**不要從`malloc`將返回值。在C語言中,最好是冗餘的,並且可能隱藏編譯器在沒有投射的情況下會捕獲的錯誤。 – pmg 2011-12-16 23:09:41
@pmg你可以舉一個例子,其中編譯器隱藏了一個實際的錯誤信息。我試圖製作一個,但失敗了。 – Mahesh 2011-12-16 23:11:20