cpp中字符串的动态内存分配
dynamic memory allocation of strings in cpp
所以这是我已经在代码上工作了5个小时的事情,逻辑看起来很好,程序似乎完成了它的工作,唯一一直困扰我的是字符串的动态内存分配。该问题没有指定用户必须输入的初始字符串数。以下是我一直在尝试动态获取字符串的方法:
int t;
cin>>t //number of strings user wishes enter
char *s1[1000009]; //1000009 is the maximum number of digits each string can have
for(i=0;i<t;i++)
{
s1[i]=(char *)malloc(1000009)
cin>>s1[i];
}
不确定这是否是正确的方式。如果不是动态字符串,我可以存储2D字符数组的方法也可以。
谢谢你,gaurav
使用字符串向量,而不是使用malloc/new。
int t;
std::cin >> t;
std::vector<std::string> strings(t); //Create t strings
for(int i = 0; i < t; i++)
std::cin >> strings[i]; //Read into each string
既然你把这个问题标记为C++,我会这样做:
std::vector<std::string> s1(1000009);
仅此而已-不需要使用malloc,也不需要关心破坏。如果您正在使用C++,请使用现有的工具。
我会这样做:
int i = 0;
char **s1;
s1 = (char **)malloc(t * sizeof(char *));
while (i < t)
{
s1[i] = (char *)malloc(1000009 * sizeof(char));
i++;
}
第一个malloc创建您的t行。第二个填充为每行分配100000009个字符
相关文章:
- Win32编译器选项和内存分配
- 多个文件的内存分配错误"在抛出 'std :: bad_alloc' what (): std :: bad_alloc 的实例后终止调用" [C++]
- 当需要超过16GB的连续内存时,内存分配失败
- 尝试摆脱任何堆内存分配
- 以下代码执行哪种内存分配(动态或静态)?
- 开放 CV 中的动态内存分配,用于视频处理
- 为什么类和 main() 函数中也有动态内存分配
- 使用 NTAllocateVirtualMemory 和 GetProcAddress 的内存分配问题不起作用
- C++:矢量分配器行为、内存分配和智能指针
- 介于 [固定数组] 和 [带内存分配的指针] 之间的性能
- Linux C++ 中的页面对齐内存分配
- 整数内存分配/释放
- 将内存分配返回值强制转换为 TYPE 数组
- C++程序什么都不做,但瓦尔格林德显示内存分配
- 给定特定内存地址的数组的动态内存分配
- 如何完成内存分配
- 我刚刚了解了C++中的动态内存分配
- 在先前调用 string::find 后添加内存分配和内存集会导致它返回 npos.为什么?
- 对于堆上的页面对齐内存分配是否有任何优化或不同的 API?
- 无法删除布尔动态内存分配