ZPS*_*ZPS 1 c memory arrays data-structures
例如,我有这个结构和代码:
typedef struct
{
long long *number;
} test;
test * test_structure;
test_structure = malloc(sizeof(test));
test_structure->number = malloc(sizeof(long long) * 100);
free(test_structure->number);
free(test_structure);
Run Code Online (Sandbox Code Playgroud)
与此结构和代码:
typedef struct
{
long long number[100];
} test;
test * test_structure;
test_structure = malloc(sizeof(test));
free(test_structure);
Run Code Online (Sandbox Code Playgroud)
因为我知道这个数字阵列将永远是100,或者是这些方法完全可以接受的,或者是一种方法比其他更好的,为什么?
第二种方式更好,原因如下:
尽管如此,这两种方法基本相同.你使用(我很想说'浪费',但这不太公平)与第一个相比更多的空间,但它不太可能是一个主要问题(如果是,你可能想要改变大小100,因为这将节省你比修补指针与数组更多的空间).