我在这段代码中使用 malloc 错误吗

Am I using malloc wrong in this snippet

我试图理解 malloc,所以我创建了这个小东西,以显示整数的大小,以及 malloc 给出的新大小,但它并没有增加;对我来说总是 8 个字节

那么,我是不是用错了malloc?

#include <stdio.h>
#include <stdlib.h>

int main() {

    int *points = (int *) malloc(10*sizeof(int));
    int size_of_points = sizeof(points);
    int size_of_int = sizeof(int);

    printf("size of int: %d\n", size_of_int);
    printf("size of points: %d\n\n", size_of_points);

    for ( int counter = 0; counter < size_of_points; counter++) {
        printf("Please enter: ");
        scanf("%d", points);

        printf("**New size of int: %d\n**", size_of_int);
        printf("New size of points: %d\n\n**", size_of_points);
    }

    free(points);

    return 0;
}

在任何时候,点的大小不应该是:sizeof(int) 是 8 乘以 10 = 40? 它以 8 个输入停止。

您的代码没有任何问题。然而,错误的是您的理解:sizeof(some_pointer) 总是 return 指针的大小,而不是指向的内存块的大小。指针中没有内存块大小信息。