Allora, cerco di dire quanto di più corretto mi è possibile.
La parte di codice tratta le zone di memoria, o meglio, si evince dalla malloc che definisce allocazione di memoria (dinamicamente), che resta allocata fino a quando non viene invocata la deallocazione free.
Allocare memoria significa riservare parte di memoria, un esempio è quindi che quella parte di memoria possa contenere un intero, quindi una quantità di memoria riservata ad un programma.
Spero che quello che dopo aver studiato io non stia dicendo cavolate.
Questa è la parte di codice della traccia:
#include <stdio.h>
#include <stdlib.h>
int main() {
char *a = "aceilprs";
int v[12] = {5,2,7,1,2,8,0,2,6,3,4,2};
char *p;
int i;
p=malloc(sizeof(char)*12);
for(i=0; i<20;++i)
p[i] = a + v[i];
for (i = 0; i < 12; i++)
printf("%c", *(p + i));
return 0;
}
Primo errore che mi viene di dire è a colpo d'occhio!
Quei due cicli for non hanno le graffe, i cicli for hanno la seguente struttura:
for(...){
istruzioni
}
Giusto