相关疑难解决方法(0)

使用malloc分配具有不同行长度的多维数组

我有以下C代码:

int *a;
size_t size = 2000*sizeof(int);
a = (int *) malloc(size);
Run Code Online (Sandbox Code Playgroud)

哪个工作正常.但如果我有以下内容:

char **b = malloc(2000*sizeof *b);
Run Code Online (Sandbox Code Playgroud)

每个元素b都有不同的长度.

怎么可能b像我一样做同样的事情a; 即以下代码是否正确?

char *c;
size_t size = 2000*sizeof(char *);
c = (char *) malloc(size);
Run Code Online (Sandbox Code Playgroud)

c arrays malloc

66
推荐指数
4
解决办法
20万
查看次数

C编程,为什么这个大型数组声明会产生分段错误?

此代码在数组声明期间产生分段错误.我很困惑为什么会这样.我故意选择2000000000作为值,因为它低于2 ^ 31并且可以适合整数变量.

int main()
{

    int  nums_size = 2000000000;

    int nums[nums_size];

    int i;
    for(i = 0; i < nums_size; i++) {
        nums[i] = i;
    }


    return 0;

}
Run Code Online (Sandbox Code Playgroud)

c arrays integer

5
推荐指数
1
解决办法
5380
查看次数

在 C 中创建大型数组

我的问题与C语言有关。我必须创建一个大约 200 万个元素的大数组,但计算机给出了“分段错误(核心转储)”错误。我简单地说:

int integer_array[2000000];
float float_array[2000000];
Run Code Online (Sandbox Code Playgroud)

我确信这与分配给数组的内存有关,但我无法找出正确的解决方案。

c arrays

5
推荐指数
1
解决办法
8383
查看次数

标签 统计

arrays ×3

c ×3

integer ×1

malloc ×1