By adding an extra * within var variables[26];, I can avoid mixing . and -> and use the same operator -> in all codes. My classmate suggested that I might be wasting extra memory, but it did smoothen my coding experience as I make less mistakes.
Is this considered bad practise or acceptable?.
Original version
#include <stdio.h>
struct var {
int ** num;
int y;
int x;
int count;
};
typedef struct var var;
struct prog
{
var variables[26]; <===================================BEFORE CHANGE
};
typedef struct prog prog;
int main()
{
prog *p = calloc(1,sizeof(prog));
//p->variables[0] = calloc(1, sizeof(var));
p->variables[0].y=1; <========================= BEFORE CHANGE, USING '.' to access y
return 0;
}
Changed version
#include <stdio.h>
struct var {
int ** num;
int y;
int x;
int count;
};
typedef struct var var;
struct prog
{
var* variables[26]; <===================================Added * after var
};
typedef struct prog prog;
int main()
{
prog *p = calloc(1,sizeof(prog));
//p->variables[0] = calloc(1, sizeof(var));
p->variables[0]->y=1; <=========================== Now can use '->' instead of '.'
return 0;
}