C Programmierung: malloc () innerhalb einer anderen Funktion

Ich brauche Hilfe beimalloc() in einer anderen Funktion.

Ich komme an einem @ vorbZeige undGröß zur Funktion von meinemmain() und ich möchte den Speicher für diesen Zeiger dynamisch mit @ zuweismalloc() aus dieser aufgerufenen Funktion heraus, aber ich sehe, dass ... der Speicher, der zugewiesen wird, für den in meiner aufgerufenen Funktion deklarierten Zeiger und nicht für den Zeiger innerhalb desmain().

Wie soll ich einen Zeiger an eine Funktion übergeben und Speicher für den übergebenen Zeiger reservieren?von innerhalb der aufgerufenen Funktion?

Ich habe den folgenden Code geschrieben und erhalte die Ausgabe wie unten gezeigt.

QUELLE

int main()
{
   unsigned char *input_image;
   unsigned int bmp_image_size = 262144;

   if(alloc_pixels(input_image, bmp_image_size)==NULL)
     printf("\nPoint2: Memory allocated: %d bytes",_msize(input_image));
   else
     printf("\nPoint3: Memory not allocated");     
   return 0;
}

signed char alloc_pixels(unsigned char *ptr, unsigned int size)
{
    signed char status = NO_ERROR;
    ptr = NULL;

    ptr = (unsigned char*)malloc(size);

    if(ptr== NULL)
    {
        status = ERROR;
        free(ptr);
        printf("\nERROR: Memory allocation did not complete successfully!");
    }

    printf("\nPoint1: Memory allocated: %d bytes",_msize(ptr));

    return status;
}
PROGRAMMAUSGABE:
Point1: Memory allocated ptr: 262144 bytes
Point2: Memory allocated input_image: 0 bytes

Antworten auf die Frage(16)

Ihre Antwort auf die Frage