【发布时间】:2019-12-07 21:16:43
【问题描述】:
还是 C 的新手,目前正在尝试掌握它。
我的问题如下:
(1) 以后如何在代码中访问分配给结构的数组?
(2) 如何解决指针类型不兼容的赋值错误?或者我该如何分配 数组正确吗?
#include <stdio.h>
typedef struct Some_Array{
int length;
int *array:
} Some_Array;
Some_Array structure_arr(int *array, int length_a){
Some_Array new_arr;
new_arr.length = length_a;
new_arr.array = &array; // Compiler gives warning: assignment from incompatible pointer type
return new_arr;
}
int main(){
int my_array = { 1, 2, 4, 6, 8};
int my_array_length = 5;
Some_Array fancy_arr = structure_arr(my_array, my_array_length);
printf("\nLength is: %d", fancy_arr.length); // works
printf("\n First index of fancy_arr:%d", fancy_arr.array[0]); // Doesnt work
return 0;
}
【问题讨论】:
-
感谢使用和提及警告!这样做的人太少了:(
标签: c arrays pointers struct typedef