C 中指向短整型的指针

问题描述 投票:0回答:1

当我尝试使用短指针时,出现未定义的行为或分段错误。

例如:

#include <stdio.h>

int main() {
    short int *a;
    *a = 10;
    printf("%hd\n", *a);
    return 0;
}

命令行上没有任何显示。

所以我不明白如何正确使用它。

c pointers
1个回答
0
投票

那是因为

a
只是一个指针,但没有分配内存。

你可以

malloc
记忆:

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

int main() {
    short int *a = malloc(sizeof *a);
    *a = 10;
    printf("%hd\n", *a);

    free(a);
    return 0;
}
© www.soinside.com 2019 - 2024. All rights reserved.