相关疑难解决方法(0)

如何在C中使用动态多维数组?

有人知道如何使用C动态分配多维数组吗?那可能吗?

c arrays dynamic

59
推荐指数
4
解决办法
14万
查看次数

C多维数组中的指针地址

我正在搞乱多维数组和指针.我一直在看一个程序,它打印出一个简单数组的内容和地址.这是我的数组声明:

int zippo[4][2] = { {2,4},
            {6,8},
            {1,3},
            {5,7}   };
Run Code Online (Sandbox Code Playgroud)

我目前的理解是它zippo是一个指针,它可以保存其他几个指针的地址.默认情况下,zippo持有指针的地址zippo[0],也可以容纳指针的地址zippo[1],zippo[2]zippo[3].

现在,请采取以下声明:

printf("zippo[0] = %p\n", zippo[0]);
printf("  *zippo = %p\n", *zippo);
printf("   zippo = %p\n", zippo);
Run Code Online (Sandbox Code Playgroud)

在我的机器上,它提供以下输出:

zippo[0] = 0x7fff170e2230
  *zippo = 0x7fff170e2230
   zippo = 0x7fff170e2230
Run Code Online (Sandbox Code Playgroud)

我完全理解为什么zippo[0]*zippo拥有相同的价值.它们都是指针,它们都存储整数2的地址(默认),或者zippo[0][0].但是,zippo共享相同的内存地址又是什么呢?不zippo应该存储指针的地址zippo[0]?Whaaaat?

c memory arrays pointers multidimensional-array

28
推荐指数
3
解决办法
4万
查看次数

在C中传递数组数组

我需要一个带有2D数组并生成随机位的函数,因此结果是一个随机二进制字符串数组.

我有以下代码,

#define pop_size 50
#define chrom_length 50
main() {
    int population[pop_size][chrom_length];
    init_pop(&population);
}
int init_pop(int *population[][]) {
    for(i = 0; i < pop_size; i++) {
        for(j = 0; j < chrom_length; j++) {
            *population[i][j] = rand() % 2;
        }
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在编译时,我收到以下错误消息:

数组类型具有不完整的元素类型

有什么建议?

c pointers

0
推荐指数
2
解决办法
318
查看次数

标签 统计

c ×3

arrays ×2

pointers ×2

dynamic ×1

memory ×1

multidimensional-array ×1