fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4.  
  5. typedef struct ENTITY
  6. {
  7. char * field1;
  8. char * field2;
  9. } entity;
  10.  
  11. int my_function(entity ** my_array)
  12. {
  13. int count = 14;
  14.  
  15. entity * result;
  16. result = (entity *) calloc(count, sizeof(entity));
  17.  
  18. int i;
  19. for(i = 0 ; i < count ; i++)
  20. {
  21. (result+i)->field1 = strdup("Blabla in field1");
  22. (result+i)->field2 = strdup("Blabla in flied2");
  23.  
  24. // This line print correctly "Blabla in field1" for each element in the array.
  25. printf("->{%s}\n", (result+i)->field1);
  26. }
  27.  
  28. *my_array = result;
  29. return count;
  30. }
  31.  
  32. int main()
  33. {
  34. entity * my_array;
  35. int count = my_function(&my_array);
  36. int i=0;
  37. for(i = 0 ; i < count ; i++)
  38. {
  39. printf("field1 of the element %d: %s\n", i, my_array[i].field1);
  40. }
  41. return 0;
  42. }
Success #stdin #stdout 0.01s 1852KB
stdin
Standard input is empty
stdout
->{Blabla in field1}
->{Blabla in field1}
->{Blabla in field1}
->{Blabla in field1}
->{Blabla in field1}
->{Blabla in field1}
->{Blabla in field1}
->{Blabla in field1}
->{Blabla in field1}
->{Blabla in field1}
->{Blabla in field1}
->{Blabla in field1}
->{Blabla in field1}
->{Blabla in field1}
field1 of the element 0: Blabla in field1
field1 of the element 1: Blabla in field1
field1 of the element 2: Blabla in field1
field1 of the element 3: Blabla in field1
field1 of the element 4: Blabla in field1
field1 of the element 5: Blabla in field1
field1 of the element 6: Blabla in field1
field1 of the element 7: Blabla in field1
field1 of the element 8: Blabla in field1
field1 of the element 9: Blabla in field1
field1 of the element 10: Blabla in field1
field1 of the element 11: Blabla in field1
field1 of the element 12: Blabla in field1
field1 of the element 13: Blabla in field1