如何创建可以存储超过 1,047,141
个指针的指针数组?我使用以下代码计算了这个数字:
int main(int argc, char const *argv[]) {
long a = 0;
while(1==1){
char * str[a];
printf("%ld is good.\n", a);
a++;
//Loop ends on Segmentation fault
}
return 0;
}
我正在使用指针数组来存储字符串。有哪些替代方案?
编辑
上面的代码只是找到指针数组的最大大小的一种方法。
一个指针保存一个字符串,所以我可以存储的最大字符串数是 1,047,141
。我需要一种方法来存储超过 1,047,141
个字符串。
最佳答案
通过malloc()
动态分配数组。
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char const *argv[]) {
long a = 0;
while(1==1){
char ** str = malloc(sizeof(char*) * a);
if (str != NULL){
printf("%ld is good.\n", a);
free(str);
} else {
break;
}
a++;
}
return 0;
}
关于c - 指针数组 - 需要更大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38377289/