Ich muss wissen, ob ich die Informationen, die in tire_pressure in der Struktur sind, aufrufen und in einer anderen Funktion verwenden kann? Grundsätzlich bin ich mir nicht sicher, wie ich es von einem zum anderen nennen soll. Muss ich die Funktion im tireTest deklarieren? Mit welcher Funktion versuche ich auf die tire_pressure-Information zuzugreifen. Danke für die HilfeInformationen aus einer Struktur nehmen und in einer anderen Funktion verwenden
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
struct tires
{
char Manufacturer[40];
int tire_pressure[0];
int pressure_change[0];
}typedef tires;
// Prototypes
void getTireInformation(tires*, int);
void tirePressure(tires*, int);
void tireTest(tires*, int);
int main()
{
tires tire[4];
tires* ptire = &tire[0];
srand(time(NULL));
getTireInformation(ptire, 4);
tirePressure(ptire, 4);
tireTest(ptire, 4);
return 0;
}// end main
//============================
void getTireInformation(tires* ptire, int size)
{
int i = 0;
for (i = 0; i < size; i++)
{
printf("please enter Make for the tire: \n");
scanf("%s", &(ptire + i) ->Manufacturer);
}
printf("all tire make you entered ...just for verification:\n");
for(i = 0; i < size; i++)
printf("%s\n",(ptire +i) ->Manufacturer);
}//end getTireInformation
//=======================================================================
void tirePressure(tires* ptire, int size)
{
int i = 0;
int min = 18;
int max = 35;
for (i = 0; i < size; i++)
{
(ptire + i) ->tire_pressure[0] = rand() % (max - min + 1) + min;
printf("The Tire pressure is: ");
printf("%d\n",(ptire + i) -> tire_pressure[0]);
}// end for
}// end tirePressure
//==============================================================
void tireTest(tires* ptire, int size)
{
int i = 0;
int min = 2;
int max = 5;
int change[0] = {0};
i++;
for (i = 0; i < size; i++)
{
change[0] = rand() % (max - min + 1) + min;
//(ptire + i) -> pressure_change[0] = rand() % (max - min + 1) + min;
printf("Pressure change from test %d: %d\n",i + 1, change[0]);
//(ptire + i) -> pressure_change[0] = change[0] + tirePressure;
//printf("%d\n", (ptire +i) -> pressure_change);
}// end for
}
Sie müssen nicht zugreifen '(ptire + i) -> tire_pressure [0] 'und' change [0] ', da die Arrays nur Nullelemente haben. Hinweis: Das Erstellen von Arrays mit null Elementen wird im Standard nicht unterstützt. – MikeCAT
@MikeCAT also, wenn das Array 2 Elemente hätte sagen, würde es funktionieren? – Charlie
Sie haben * undefiniertes Verhalten * aufgerufen, indem Sie einen Zeiger auf ein Objekt mit falschem Datentyp übergeben: '% s' ruft' char * 'auf, aber Sie haben' char (*) [40] 'in' scanf ("% s ", & (ptire + i) -> Hersteller);' – MikeCAT