<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Hilfe bei malloc() Funktion in C</title>
    <link>http://forum.geizhals.at/feed.jsp?id=439810</link>
    <description>Geizhals-Forum</description>
    <item>
      <title>Re: Hilfe bei malloc() Funktion in C</title>
      <link>http://forum.geizhals.at/t439810,3608067.html#3608067</link>
      <description>Muss an deinem Compiler / OS liegen, bei mir wird bis 368803398 noch akzeptiert (habe nicht soviel RAM...).&lt;br/&gt;</description>
      <pubDate>Wed, 23 Aug 2006 21:34:28 GMT</pubDate>
      <guid>http://forum.geizhals.at/t439810,3608067.html#3608067</guid>
      <dc:creator>juwb</dc:creator>
      <dc:date>2006-08-23T21:34:28Z</dc:date>
    </item>
    <item>
      <title>Re: Hilfe bei malloc() Funktion in C</title>
      <link>http://forum.geizhals.at/t439810,3607068.html#3607068</link>
      <description>Kann's sein daß Dein Compiler für code&amp;daten zusammen nur 65535 byte zuläßt? Sprich, Du Model tiny verwendest?&lt;br&gt;&lt;br&gt;Turbo C++ war meines Wissens ein Compiler, mit dem man auch Code für Dos erzeugen kann, und dort wird sowas durchaus wesentlich. Finde mal raus ob es für den Compiler Metabefehle gibt, die Dich das Codemodell aussuchen lassen und wähle mal eines, bei dem Du Code und Daten in verschiedenen Segmenten unterbringst und der Datenbereich über 64k wachsen kann. War meines Wissens das Modell "Compact", aber ist schon etwas her daß ich's gebraucht hab. &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt;&lt;br/&gt;</description>
      <pubDate>Wed, 23 Aug 2006 15:19:58 GMT</pubDate>
      <guid>http://forum.geizhals.at/t439810,3607068.html#3607068</guid>
      <dc:creator>Fly</dc:creator>
      <dc:date>2006-08-23T15:19:58Z</dc:date>
    </item>
    <item>
      <title>Re: Hilfe bei malloc() Funktion in C</title>
      <link>http://forum.geizhals.at/t439810,3606460.html#3606460</link>
      <description>Turbo C++? Wieso nicht VC++? Ich denke das Problem ist dass Du mit Turbo C++ eine DOS-App baust und die nicht mehr als 64k Blöcke kann? sizeof(double) ist ziemlich sicher 8 Byte.&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Wed, 23 Aug 2006 12:46:33 GMT</pubDate>
      <guid>http://forum.geizhals.at/t439810,3606460.html#3606460</guid>
      <dc:creator>ecgnwotan</dc:creator>
      <dc:date>2006-08-23T12:46:33Z</dc:date>
    </item>
    <item>
      <title>Hilfe bei malloc() Funktion in C</title>
      <link>http://forum.geizhals.at/t439810,3606405.html#3606405</link>
      <description>Ich versuche unter "C" für ein Programm eine Wertetabelle aufzustellen, auf die dann eine Funktion zum Interpolieren zugreifen soll. Die Tabelle soll möglichst mit variabler Länge definiert sein.&lt;br&gt;Im Prinzip ist mein Ansatz wie im Code-Fragment am Schluss.&lt;br&gt;Das Problem ist aber, das malloc() scheinbar sehr eigenwillig nur eine bestimmte Anzahl von Elementen akzeptiert, z.B. konnte ich 5000 Elemente anlegen, aber 10000 nicht mehr (als Feld von double-Typ Variablen).&lt;br&gt;Interessant ist, das bei mir unter Turbo C++ (unter WinXP) mehr als 7823 Elemente nicht mehr angenommen werden.&lt;img src="frage.gif" width="16" height="26" align="absmiddle" alt="?-)"/&gt;&lt;br&gt;&lt;br&gt;Wer kann mir bei einer Lösung des Problems helfen??&lt;br&gt;&lt;br&gt;--- hier kommt der Code ---&lt;br&gt;#include "stdio.h"&lt;br&gt;#include "stdlib.h"&lt;br&gt;int main(int argc, char **argv) {&lt;br&gt;&amp;nbsp;&amp;nbsp; long len, i;&lt;br&gt;&amp;nbsp;&amp;nbsp; double *feld;&lt;br&gt;&amp;nbsp;&amp;nbsp; if( argc != 2 ) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fprintf(stderr, "Fehler bei Anzahl der Argumente!\n");&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;exit( EXIT_FAILURE );&lt;br&gt;&amp;nbsp;&amp;nbsp; } // end if&lt;br&gt;&amp;nbsp;&amp;nbsp; len = atol(argv[1]);&lt;br&gt;&amp;nbsp;&amp;nbsp; if( (feld = (double *)malloc( len * sizeof(double) )) == NULL ) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fprintf(stderr, "Speicher konnte nicht angefordert werden, Wert zu gross ?\n");&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;exit( EXIT_FAILURE );&lt;br&gt;&amp;nbsp;&amp;nbsp; } // end if&lt;br&gt;&amp;nbsp;&amp;nbsp; for(i = 0; i &amp;lt; len; i++) feld[i] = (double)i;&lt;br&gt;&amp;nbsp;&amp;nbsp; for(i = 0; i &lt; len; i++) fprintf(stdout, "Feld[%ld] = %lf\n", i, feld[i]);&lt;br&gt;&amp;nbsp;&amp;nbsp; free(feld);&lt;br&gt;&amp;nbsp;&amp;nbsp; return( EXIT_SUCCESS );&lt;br&gt;} // end main&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Wed, 23 Aug 2006 12:31:08 GMT</pubDate>
      <guid>http://forum.geizhals.at/t439810,3606405.html#3606405</guid>
      <dc:creator>newpete</dc:creator>
      <dc:date>2006-08-23T12:31:08Z</dc:date>
    </item>
    <item>
      <title>Hilfe bei malloc() Funktion in C</title>
      <link>http://forum.geizhals.at/t439810,3606400.html#3606400</link>
      <description>Ich versuche unter "C" für ein Programm eine Wertetabelle aufzustellen, auf die dann eine Funktion zum Interpolieren zugreifen soll. Die Tabelle soll möglichst mit variabler Länge definiert sein.&lt;br&gt;Im Prinzip ist mein Ansatz wie im Code-Fragment am Schluss.&lt;br&gt;Das Problem ist aber, das malloc() scheinbar sehr eigenwillig nur eine bestimmte Anzahl von Elementen akzeptiert, z.B. konnte ich 5000 Elemente anlegen, aber 10000 nicht mehr (als Feld von double-Typ Variablen).&lt;br&gt;Interessant ist, das bei mir unter Turbo C++ (unter WinXP) mehr als 7823 Elemente nicht mehr angenommen werden.&lt;img src="frage.gif" width="16" height="26" align="absmiddle" alt="?-)"/&gt;&lt;br&gt;&lt;br&gt;Wer kann mir bei einer Lösung des Problems helfen??&lt;br&gt;&lt;br&gt;--- hier kommt der Code ---&lt;br&gt;#include &lt;stdio h/&gt;&lt;br&gt;#include &lt;stdlib h/&gt;&lt;br&gt;int main(int argc, char **argv) {&lt;br&gt;&amp;nbsp;&amp;nbsp; long len, i;&lt;br&gt;&amp;nbsp;&amp;nbsp; double *feld;&lt;br&gt;&amp;nbsp;&amp;nbsp; if( argc != 2 ) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fprintf(stderr, "Fehler bei Anzahl der Argumente!\n");&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;exit( EXIT_FAILURE );&lt;br&gt;&amp;nbsp;&amp;nbsp; } // end if&lt;br&gt;&amp;nbsp;&amp;nbsp; len = atol(argv[1]);&lt;br&gt;&amp;nbsp;&amp;nbsp; if( (feld = (double *)malloc( len * sizeof(double) )) == NULL ) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fprintf(stderr, "Speicher konnte nicht angefordert werden, Wert zu gross ?\n");&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;exit( EXIT_FAILURE );&lt;br&gt;&amp;nbsp;&amp;nbsp; } // end if&lt;br&gt;&amp;nbsp;&amp;nbsp; for(i = 0; i &amp;lt; len; i++) feld[i] = (double)i;&lt;br&gt;&amp;nbsp;&amp;nbsp; for(i = 0; i &lt; len; i++) fprintf(stdout, "Feld[%ld] = %lf\n", i, feld[i]);&lt;br&gt;&amp;nbsp;&amp;nbsp; free(feld);&lt;br&gt;&amp;nbsp;&amp;nbsp; return( EXIT_SUCCESS );&lt;br&gt;} // end main&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Wed, 23 Aug 2006 12:31:08 GMT</pubDate>
      <guid>http://forum.geizhals.at/t439810,3606400.html#3606400</guid>
      <dc:creator>newpete</dc:creator>
      <dc:date>2006-08-23T12:31:08Z</dc:date>
    </item>
  </channel>
</rss>
