当我尝试使用短指针时,出现未定义的行为或分段错误。
例如:
#include <stdio.h>
int main() {
short int *a;
*a = 10;
printf("%hd\n", *a);
return 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;
}