struct element
{
float number1;
int number2;
char letter;
};
struct element *table;
table = (struct element *)malloc(sizeof(struct element) * size);
for (i = 0; i < size; i++)
{
table[i].number1 = 0.0;
table[i].number2 = 10;
table[i].letter = 'B';
}
Run Code Online (Sandbox Code Playgroud)
参考table = (struct element *)malloc(sizeof(struct element) * size);,我混淆了额外的*size:
struct element 有一个明确的大小为3
{
float number1;
int number2;
char letter;
};
Run Code Online (Sandbox Code Playgroud)
如果*size,应该预留3*3个内存空间.
我想这应该很简单 table = (struct element *)malloc(sizeof(struct element) 1);
我的演绎有什么问题?
在这种情况下,table是一个数组element.在这种情况下,size不是数组的大小,element而是elements数组中的数量(换句话说,数组的长度).
这是为什么正确命名变量很重要的一个很好的例子.在这种情况下,size这不是这个变量的最佳名称,类似count或num_elements更合适.