xtrm0 Posted September 21, 2012 at 04:35 PM Report #476103 Posted September 21, 2012 at 04:35 PM Boas, estou a passar um programa de c++ para c, mas estou com um problema a gerar uma função que inicializa uma estrutura. Tenho a seguinte estrutura e função em c++: typedef struct { int arr[MAXARRVAL]; } expr; expr * make_expr() { int i; expr * a = new expr; for (i=0; i<MAXARRVAL; i++) { a->arr[i]=0; } return a; } No entanto, não consigo passa-la para C, pois não existe a keyword new. Como é que posso alterar o código, de modo a que funcione? <Signature goes here>
KiNgPiTo Posted September 21, 2012 at 04:39 PM Report #476104 Posted September 21, 2012 at 04:39 PM Tens de alocar o espaço: expr * a = malloc(sizeof(expr)); 1 Report
xtrm0 Posted September 21, 2012 at 04:41 PM Author Report #476105 Posted September 21, 2012 at 04:41 PM Funciona! Obrigado. <Signature goes here>
HappyHippyHippo Posted September 21, 2012 at 05:23 PM Report #476113 Posted September 21, 2012 at 05:23 PM (edited) olha que em C também não existe a palavra reservada delete terás de usar a função free expr * e = malloc(sizeof(expr)); free(e); Edited September 21, 2012 at 05:34 PM by pmg expr é um tipo 1 Report IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now