spacepaste

  1.  
  2. //gcc --std=c11 -g -O0 -DDEBUG -Wall main.c
  3. //cat ./main.c
  4. #include <stdio.h>
  5. #include <string.h>
  6. typedef struct {
  7. size_t X;
  8. double Y;
  9. double Z;
  10. } Coordinate;
  11. typedef struct {
  12. Coordinate *coordinate;
  13. } Total;
  14. void count(Total *totalP) {
  15. totalP->coordinate[0].X = 1ULL;
  16. totalP->coordinate[1].Y = 2.0;
  17. totalP->coordinate[2].Z = 3.0;
  18. }
  19. int main(void) {
  20. // Инициализация структуры total
  21. Total total;
  22. // Заполнение нулями (во избежании);
  23. memset(&total,0x0,sizeof(Total));
  24. // Инициализация структуры в стеке
  25. Coordinate coordinate[3];
  26. // Заполнение нулями (во избежание);
  27. memset(&coordinate,0x0,sizeof(coordinate));
  28. // Указатель на промежуточный указатель
  29. total.coordinate = coordinate;
  30. //Передать аргумент (указатель на структуру Total) в функцию
  31. count(&total);
  32. // Вывод результата
  33. printf("X=%zu,Y=%.6f,Z=%.6f\n",
  34. total.coordinate[0].X,
  35. total.coordinate[1].Y,
  36. total.coordinate[2].Z);
  37. }
  38.