C 增加字符数组的最大大小

C 增加字符数组的最大大小,c,arrays,char,size,max,C,Arrays,Char,Size,Max,我已经用C编写了一些代码,将字符数组的最大大小设为100。它工作得很好。但是当我将char数组的最大大小增加到10000时,它会给我带来分段错误(因为它已经超过了限制)。有人能告诉我如何增加最大大小并存储长度为10000的字符串吗 i、 e如何将“char a[100]”作为“char a[10000]”并执行相同的代码???您可以动态分配数组: #include <stdlib.h> char *a = malloc(100*sizeof(char)); if (a == NULL

我已经用C编写了一些代码,将字符数组的最大大小设为100。它工作得很好。但是当我将char数组的最大大小增加到10000时,它会给我带来分段错误(因为它已经超过了限制)。有人能告诉我如何增加最大大小并存储长度为10000的字符串吗


i、 e如何将“char a[100]”作为“char a[10000]”并执行相同的代码???

您可以动态分配数组:

#include <stdlib.h>
char *a = malloc(100*sizeof(char));
if (a == NULL)
{
 // error handling
 printf("The allocation of array a has failed");
 exit(-1);
}
最后,当不再需要阵列时,请记住释放分配的内存:

free(a);
基本上,
realloc(prt,size)
返回一个指向新内存块的指针,该内存块的大小由
size
指定,并取消分配
ptr
指向的块。如果失败,则不会释放原始内存块。
请阅读和了解更多信息。

没有最大尺寸,只有保留的尺寸。你好像犯了个错误。请发布一个完整的、最少的示例,并请确保将所有源代码格式化为源代码(
{}
按钮位于输入字段上方)。发布用于操作
数组
a的代码,以便更清楚地解决此问题对于现代机器来说,10k数组出现问题是不寻常的。seg故障通常不是分配限制问题的正确错误。您可能有一个错误,通过使阵列变大而恰好暴露出来。
free(a);