Wo ist der fehler 2D array



  • Hallo 1000 mal habe ich ein 2d array gemacht aber dismal funktionierts nicht kann mir einer helfen.

    void DArrayCreate(double **Array, long int yi, long int xj)
    {
    	//dhlosh Metablhton
    	register long int Counter;
    //
    	Counter = 0;
    
    				//dhlosh Metablhton
    	//arxika ton xj -aksona
    	Array = (double **)malloc( yi * sizeof(double *));
    
    	//Check mnimh
    	if(Array == NULL)
    	{
    		fprintf(stderr,"!!!FATAL ERROR!!!. __FILE__ 000 007. Den exoume allh dia8esimh mnhmh.\n");
    		exit(EXIT_FAILURE);
    	}
    
    	//Kataskeuazoume ton xj -aksona
    	for(Counter = 0; Counter < xj; Counter++)
    	{
    		//desmeush tou xorou
    		Array[Counter] = (double *)malloc(xj * sizeof(double));
    		if(Array[Counter] == NULL)
    		{
    			fprintf(stderr,"!!!FATAL ERROR!!!. __FILE__ 000 008. Den exoume alloi dia8esimh mnhmh.\n");
    		}
    	}
    


  • Damit der Array verändert wird, musst du sowas schreiben:

    void foo(double ***bar)
    {
        *bar = malloc(VIEL);
    }
    ...
    double **D2arr;
    ::foo(&D2arr);
    


  • hat sich erledicht



  • Juhu ich habs rasus danke saxxor

    void DArrayCreate(double ***Array, long int yi, long int xj)
    {
    	//dhlosh Metablhton
    	register long int Counter;
    //
    	Counter = 0;
    
    				//dhlosh Metablhton
    
    	//Elenxos yi
    	if(yi <= 0)
    	{
    		fprintf(stderr,"!!!FATAL ERROR!!! __FILE__ 000 007. Den mporo na fiakso pinaka (yi).\n");
    		exit(EXIT_FAILURE);
    	}
    
    	//Elenxos xi
    	if(xj <= 0)
    	{
    		fprintf(stderr,"!!!FATAL ERROR!!! __FILE__ 000 008. Den mporo na ftiakso oinaka (xi).\n");
    		exit(EXIT_FAILURE);
    	}
    
    	//arxika ton xj -aksona
    	*Array = (double**)malloc( yi * sizeof(double *));
    
    	//Check mnimh
    	if(*Array == NULL)
    	{
    		fprintf(stderr,"!!!FATAL ERROR!!!. __FILE__ 000 007. Den exoume allh dia8esimh mnhmh.\n");
    		exit(EXIT_FAILURE);
    	}
    
    	//Kataskeuazoume ton xj -aksona
    	for(Counter = 0; Counter < xj; Counter++)
    	{
    		//desmeush tou xorou
    		*((*Array)+Counter) = (double*)malloc(xj * sizeof(double));
    		if(*((*Array)+Counter) == NULL)
    		{
    			fprintf(stderr,"!!!FATAL ERROR!!!. __FILE__ 000 008. Den exoume alloi dia8esimh mnhmh.\n");
    		}
    		//////////////////////////////test////////////////////////////////////////////////////////
    		//
    		printf("Counter = %d\n",Counter);
    		//
    		//////////////////////////////////////////////////////////////////////////////////////////
    	}
    }
    

Anmelden zum Antworten