Du bist nicht angemeldet.

Werbeanzeige

501

21.01.2015, 12:01

Also da wäre echt selbst ein GoTo schöner gewesen :D
Lieber dumm fragen, als dumm bleiben!

Legend

Alter Hase

Beiträge: 737

Beruf: Softwareentwickler

  • Private Nachricht senden

502

21.01.2015, 12:50

Das ist nicht der einzige Grund warum man in VB6 If's Schachtelt. VB6 kann auch keine short circuit evaluation.
"Wir müssen uns auf unsere Kernkompetenzen konzentrieren!" - "Juhu, wir machen eine Farm auf!"

Netzwerkbibliothek von mir, C#, LGPL: https://sourceforge.net/projects/statetransmitt/

TrommlBomml

Community-Fossil

Beiträge: 2 143

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

503

21.01.2015, 13:45

Das ist nicht der einzige Grund warum man in VB6 If's Schachtelt. VB6 kann auch keine short circuit evaluation.


Das ist der Begriff, der mir gefehlt hat und genau damit "gelöst" worden ist.

BlueCobold

Community-Fossil

Beiträge: 10 859

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

504

22.01.2015, 11:17

Java-Quelltext

1
2
3
        long length = response.getContentLength();
        if (length >= 0 || length <= Integer.MAX_VALUE) {
            byte[] buffer = new byte[(int) length];
--> NegativeArraySizeException
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »BlueCobold« (23.01.2015, 21:04)


birdfreeyahoo

Alter Hase

Beiträge: 766

Wohnort: Schorndorf

Beruf: Junior Software Engineer

  • Private Nachricht senden

505

22.01.2015, 15:36

Das versteh ich jetzt nicht so ganz.

drakon

Supermoderator

Beiträge: 6 529

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

506

22.01.2015, 17:48

Ich bin mir auch nicht ganz sicher. Habe schon lang kein Java mehr gemacht. Aber length kann ja 0 sein und üblicherweise sind Arrays mit Länge 0 Unsinn. Warum das aber eine "NegativeArraySizeException" gibt weiss ich auch nicht. Blue, Erklärung im Detail? ^^

David Scherfgen

Administrator

Beiträge: 10 334

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

507

22.01.2015, 17:57

Von welchem Typ ist length?
Scheinbar ja nicht int, denn sonst wäre der Cast nicht nötig.

Architekt

Community-Fossil

Beiträge: 2 490

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

508

22.01.2015, 18:18

Ich bin mir auch nicht ganz sicher. Habe schon lang kein Java mehr gemacht. Aber length kann ja 0 sein und üblicherweise sind Arrays mit Länge 0 Unsinn. Warum das aber eine "NegativeArraySizeException" gibt weiss ich auch nicht. Blue, Erklärung im Detail? ^^

Eig. haben Arrays mit Länge 0 einige Anwendungen. Oft ist es einfacher, einfach ein Array der Länge 0 zu übergeben, statt null. Ein einfaches Beispiel wäre die args Komponente der Java main Methode.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

drakon

Supermoderator

Beiträge: 6 529

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

509

22.01.2015, 18:49

Ich bin mir auch nicht ganz sicher. Habe schon lang kein Java mehr gemacht. Aber length kann ja 0 sein und üblicherweise sind Arrays mit Länge 0 Unsinn. Warum das aber eine "NegativeArraySizeException" gibt weiss ich auch nicht. Blue, Erklärung im Detail? ^^

Eig. haben Arrays mit Länge 0 einige Anwendungen. Oft ist es einfacher, einfach ein Array der Länge 0 zu übergeben, statt null. Ein einfaches Beispiel wäre die args Komponente der Java main Methode.

Bestimmt ist das so, wenn das Array an sich ein Objekt ist, aber wenn es so alloziert wird, dann ist das jedenfalls in C/C++ ja so, dass man da Speichert für einen gewissen Bereich anfordert. Aber Speicher von der Grösse 0 anfordern macht keinen Sinn und in C++ (iirc) ist das auch undefiniert. Ich hätte jetzt behauptet, dass das bei primitiven Arrays in Java ebenfalls so ist.

Und auch gute Beobachtung & Annahme von David! Auf den Cast habe ich gar nicht geschaut.

Architekt

Community-Fossil

Beiträge: 2 490

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

510

22.01.2015, 19:16

Stimmt, in C/C++ ist es per Standard illegal, dennoch braucht man IMO bei gcc -pedantic damit man darüber informiert wird. Allerdings gibt/gab es in C99 dafür Verwendung und nannte sich flexible arrays bzw. struct hack.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

Werbeanzeige