wie verwenden Sie void-Zeiger als Funktions-Rückgabe-Typ In C

So, ich bin planing, um eine Funktion Schreiben, die Rückkehr ein zufälliges array-element. Die Funktion akzeptiert zwei
Parameter—ein array von void-Zeigern und array-Länge. Sollte es wieder ein void-Zeiger.
Die Idee ist, nehmen Sie das gegebene array, das kommt in form von einem array von void-Zeiger, den die Funktion zurückgeben ein zufälliges element aus dem array.
Die Frage die ich habe ist, was muss ich tun, um die Rückgabe eines Zeigers, was muss ich tun, um das "Ergebnis" so kann ich es zurückgeben? Nach Stationen was muss ich tun, um den Zugriff wieder?
Dank

Hier ist was ich getan habe, aber ich bin immer die:

 "25: error: invalid use of void expression"

mit Warnungen wie:

" warning: pointer of type ‘void *’ used in arithmetic"

Mein code:

#include<stdlib.h>
#include<stdio.h>
#include<time.h>
void *randomNum(void * array, int length)
{
    void * result;  
    result=array[rand()%(length-1)];
    return result;
}    
int main()
{
int i;
srand(13);
int array[9]={1,5,6,85,132,65463,1354,5863,134};

for (i=0;i<9; i++)
{
    printf("%d\n",*randomNum(array,9));
}



return 0;
}
Bitte vermeiden void-Pointer. Mit Typen, die ermöglicht, dass der compiler die Prüfungen für Sie
Es ist nicht ganz klar, was Sie versuchen zu erreichen. Wollen Sie die Rückkehr der ints innerhalb des array umgewandelt void* oder hast du was zu dem zurückgeben der Adresse von diesem array-element?
Warum ist jemand, den stimmberechtigten eine verwirrte Frage wie diese?
In *randomNum(array,9) Sie einen void-Zeiger zu dereferenzieren und damit, dass Sie "eine leere", die nicht einmal Sinn zu machen.
machte eine Bearbeiten für die Frage. hoffentlich ist es klar geworden, dass Sie Jungs.

InformationsquelleAutor Jack Zhu | 2013-11-16

Schreibe einen Kommentar