Wie finden Sie die 'sizeof' (ein Zeiger auf ein array)?

First off, hier sind einige code:

int main() 
{
    int days[] = {1,2,3,4,5};
    int *ptr = days;
    printf("%u\n", sizeof(days));
    printf("%u\n", sizeof(ptr));

    return 0;
}

Ist es ein Weg, um herauszufinden, die Größe des Arrays, die ptr verweist (anstatt nur unter Angabe Ihrer Größe, der vier bytes auf einem 32-bit system)?

Ich habe immer verwendet parens mit dem sizeof - sicher, es macht es Aussehen wie eine Funktion aufrufen, aber ich denke, es ist klarer.
Warum nicht? Tun Sie etwas gegen die überflüssigen Klammern? Ich denke, es liest sich ein wenig leichter mit Ihnen selbst.
gut .. vorausgesetzt der linken Seite dieser call ist ein Zeiger auf int, ich würde es schreiben als int *ptr = malloc(4 * sizeof *ptr); die ist mir weitaus klarer. Weniger parens zu Lesen, und bringt die wörtliche constsant auf der Vorderseite, wie in der Mathematik.
nicht alloziert ein array von Zeigern, wenn Sie eigentlich ein array von ints!
Es gibt keine "Zeiger auf ein array" hier. Nur ein Zeiger auf ein int.

InformationsquelleAutor jkidv | 2009-01-29

Schreibe einen Kommentar