Ich habe zwei Fragen in C++.War eine statische Variable eine globale Variable?
Erstens, ist eine globale Variable die gleiche wie eine statische Variable? Was ist an einer statischen Variable besonders?
Zweitens bin ich der Code tatsächlich ein Projekt, und wenn ich nicht statische Variable nicht verwenden, meinen Code schickte mir den nächsten Fehler:
Run-Time Check Failure # 2 - um die Variable Stack 'szData' war beschädigt.
Dieser Fehler aufgrund sprintf erscheinen, weil ich es entfernen und alles ist ok ..
bool CreateFile(MyCards** ppCards)
{
fstream ficCar;
static char szData[31];
ficEmployes.open("./my_cards.dat", ios::in | ios::binary);
if (!ficCar.fail())
{
ficCar.close();
return false;
}
else
{
sort(ppCards, ppCards + 26271, OrderedCards);
ppCards.open("./nom_cartes.index", ios::out | ios::binary);
if (ficCar.fail())
{
throw "Error";
}
else
{
for (int indice = 0; indice < 10123; indice++)
{
sprintf(szData, "%-20s %010d \n",
ppCards[indice]->GetNom(),
ppCards[indice]->GetPosition());
ficCar.write(szEnregistrement, 30);
}
ficCar.close();
return true;
}
}
}
Wer kann mir helfen? Vielen Dank!
Ich kann keine 'statische' in diesem Code – user463035818
finden, wenn' ficCar' nicht fehlgeschlagen ist, schließen Sie es und zurück und nur wenn es fehlgeschlagen ist, verwenden Sie es weiter, ist das wirklich was Sie wollen? – user463035818
Hoppla! Ich mache einen Fehler. Ich habe meinen Code auf SO bearbeitet, es ist ein statisches Zeichen szData [31]; – SurveyVisual