Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Filepointer vs. sprintf

Empfohlene Antworten

Veröffentlicht

Hallo zusammen,

im rahmen meiner belegarbeit für dieses semester bin ich auf ein für mich unerklärliches kuriosum gestoßen: wenn ich eine datei mit fopen öffne, dann irgendetwas mit der funktion sprintf mache und danach fclose rufe, bekomme ich einen speicherzugriffsfehler, da der filepointer umgesetzt wurde.

als (minimalisierter) c-quelltext sieht das ganze so aus:

int main()

{

 FILE *pUD;

 char vLen[2];

 int i=12;


 pUD=fopen("UserData", "ab");

 if(!pUD) printf("could not open file!");

 printf("%i\n", (int)pUD);   /*der filepointer nach int gecastet, damit man diesen kontrollieren kann*/


 sprintf(vLen, "%d", i);


 printf("%i\n", (int)pUD);

 fclose(pUD);

 return 0;

}

wenn ich diese quelltext kompiliere (per gcc (SUSE Linux) 4.3.1 20080507 (prerelease) [gcc-4_3-branch revision 135036]) bekomm ich folgende auswurf in der konsole:
134529064

134529024

Speicherzugriffsfehler

:rolleyes:

über gedanken/vorschläge, warum das so ist und wie man das am besten beheben kann, würde ich mich freuen

MfG

Technical.Error

hm stimmt. vLen um eins größer und vLen[2]=0 hilft.

danke für die schnelle hilfe

grüße

Tchnical.Error

auch für den fall, dass der int-wert definitiv maximal 2 stellen besitzt? (was bei mir der fall wäre - denn eigentlich möchte ich in vLen die länge eines strings speichern, welcher maximal 64 zeichen umfasst)

dann ist ja gut. danke dir nochaml für deine hilfe.

greez

Technical.Error

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.