如何在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