Здравствуйте! «Правильно» ли я выделяю код для для текстовых строк (*s)? Является ли такой способ «экономичным» для хранения массива текстовых данных?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct str_t {
char *s;
double e;
int a,b,c;
long int f;
} *pstr;
const int N=5;
char string_buf[80];
int main(){
pstr=(struct str_t*)malloc(N*sizeof(struct str_t));
int i;
for(i=0;i<N;i++){
scanf("%s",string_buf);
pstr[i].s=(char *)malloc(strlen(string_buf)*sizeof(char));
strcpy(pstr[i].s,string_buf);
};
for(i=0;i<N;i++) free(pstr[i].s);
free(pstr);
return 0;
}