Может ли кто-нибудь объяснить мне, почему первый указатель (stringarray [0]) отсутствует в моих выходных данных и как его решить.также я хотел бы знать, как я могу освободить свою память от всех указателей malloc.
int main(int argc, char **argv) {
[...]
char ** stringarray;
if (( stringarray = (char **)malloc(counter*sizeof(char)))== NULL){exit(0);}
int k = 0;
for (i = 0; i < len; i =i+1){
if((strcmp(countries, districts[i]) == 0) && ( argvIntPeoplelimit <= people[i])) {
if (( stringarray[k] = (char * ) malloc(100*sizeof(char)))== NULL){exit(0);}
snprintf(stringarray[k],100,"The Country %s has %d people.",countries[i],people[i]);
printf("%d %d %s %s %d\n",i,k,stringarray[k], countires[i],people[i] ); //here stringarray[k] k==0 has a value
k=k+1;
}
}
write_file(stringarray,counter);
for (int f = 0; f < k; ++f)
{
// if i call stringarray[0] nothing shows up
//ERROR can't free(stringarray);
}
return 0;
}
Я не знаю, как создать структурные указатели со строками, которые позволяют мне обрабатывать данные поверхв "char * result []" функции write_file.
void write_file(char *result[], int len);
Любая помощь, советы, советы приветствуются!Спасибо!