WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

S-Functions: Frage zu Pointer-Workvectoren

 

Tjark

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.03.2009, 13:01     Titel: S-Functions: Frage zu Pointer-Workvectoren
  Antworten mit Zitat      
Hallo nochmal,

Ich habe nun ein neues Problem, nämlich dass die Simulation abstürzt (d.h. meine ssPrintf-Befehle, die mir den Inhalt der Liste in jedem Simulationsschritt anzeigen, werden nicht ausgeführt) , wenn ich folgende Zuweisung mache:

Code:

if((Zeiger = (struct T_Liste *)malloc(sizeof(struct T_Liste))) == NULL)
                ssSetErrorStatus(S, "Fehler beim Erzeugen der Liste!");
ssSetPWorkValue(S, 0, (struct T_Liste *)Zeiger);
 


Wenn ich den Code nun so ändere, stürzt die Simulation nicht sofort ab, sondern es kommt ein "Segmentation Violation Error", die S-Function wird also solange ausgeführt, bis es bei der fehlerhaften Stelle im Code angekommen ist (d.h. die ssPrintf-Befehle werden ausgeführt):

Code:

 ssSetPWorkValue(S, 0, (struct T_Liste *)malloc(sizeof(struct T_Liste)));
 

Die Sicherheitsabfrage habe ich mir hier mal gespart.

In der Matlab-Hilfe und auch in der Beispiel-S-Function zum PWork-Vector wird dem Pointer-Workvector jedesmal ein frisch erzeugtes, also neues Objekt zugewiesen.
Kann es sein, dass das nur so funktioniert, dass man dem PWork den Speicher direkt zuweist und nicht erst mittels Hilfszeiger übergibt ?
In der Hilfe wird leider kein Sterbenswörtchen darüber verloren, ob man dem PWork auch einfach einen Zeiger übergeben kann.

Vielleicht weiss das ja jemand.


Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.