所以,我现在正在学习C,并希望对某些事情做一些澄清。
我了解到,如果我们想创建动态数组,我们可以使用以下代码行:
int *arr = malloc(10 * sizeof(int));
据我所知,在这种情况下,arr是一个指针,按字节数分配相当于10个整数的数组。我也明白你可以把arr当作一个数组(从arr [0]到arr [9]。
这是否意味着所有分配内存的指针都可以视为数组?
喜欢这可以被视为一个数组吗?
int *single = malloc(sizeof(int));
或者可以将其视为数组吗?
int *half = malloc(sizeof(int) * 1.5)
答案 0 :(得分:4)
答案 1 :(得分:1)
喜欢这可以被视为一个数组吗?
int *single = malloc(sizeof(int));
当然,它可以被视为数组int single[1]
或者可以将其视为数组吗?
int *half = malloc(sizeof(int) * 1.5)
是的,但它会与之前的代码段具有相同的效果,但您只会浪费2个额外的字节。如果你试着写一半[2],你可能会破坏一些记忆。