malloc
-
Hi,kann mir jemand ein Tip geben.
habe folgendes gemacht
#include <stdio.h>
#include <stdlib.h>int main()
{
int **coma;
int x, y, size=10;coma = (int **)malloc(100*sizeof(int));
for (x=0; x<size; x++)
for (y=0; y<size; y++)
coma[x][y]=0;free (coma);
return 0;
}warning C4013: 'malloc' undefined; assuming extern returning int
warning C4013: 'free' undefined; assuming extern returning intBeim Ausführen bricht das Programm ab. Habe nichts im Internet gefunden.
Bedanke mich schon voraus !!!
-
der rückgabewert von malloc darf nicht gecastet werden.
-
-
Bist Du dir sicher, daß Du stdlib.h eingebunden hast? Oder ist das ein steinalter Compiler, da hieß das malloc.h. Oder falsch konfiguriertes System? Das würde die Warnungen erklären.
-
Ist dir klar, was coma[x][y] macht? Es ist nicht *so* einfach, mehrdimensionale Arrays in C anzulegen.
Das http://www.c-plusplus.net/forum/viewtopic-var-t-is-39489.html ist zwar C++, aber bis auf die Kapselung durch die Klasse und new ist das sehr direkt nach C übertragbar.
-
-
Danke
- Ja, verwende visual c++ v.6.0
- Es ging erstmal nur ums Prinzip, wie es funktionieren soll.
Ich wollte die Matrix zuerst nur initialisieren, um sie dann später zu verwenden. - Danke, muss ich mal schauen.
-
mit malloc.h gibt es keiner warnings mehr.
Aber es funktioniert trotzdem nicht
-
wie Daniel E. schon schrieb: du hast kein mehrdimensionales array erzeugt.
-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung in das Forum ANSI C verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
[cpp]-Tags verwenden!
-
Hallo
wie Tim schon geschrieben hat, hast du bei der Array definition
einen Fehler gemacht. Richtiger wäre es so:#include <stdio.h> #include <stdlib.h> int main() { int **coma; int x, y, size=10; coma = malloc(size * sizeof(int*)); for (x=0; x<size; ++x) { coma[x] = malloc(size * sizeof(int)); for (y=0; y<size; ++y) coma[x][y] = 0; } for (x=0; x<size; ++x) free(coma[x]); free (coma); return 0; }
Gruß mcr
-
mcr schrieb:
wie Tim schon geschrieben hat,
-
Ooops, da habe ich es doch dem falschen zugeordnet.. sorry..