【发布时间】:2020-11-06 01:34:40
【问题描述】:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct{
char a[10];
char b[1];
char c[5];
char d[8];
}T_TEMP_C;
int main()
{
char* temp = "123456789012345678901234";
T_TEMP_C* ltpa = (T_TEMP_C*) temp;
printf("ltpa -> a : %s\n", ltpa->a);
printf("ltpa -> b : %c\n", ltpa->b[0]);
printf("ltpa -> c : %s\n", ltpa->c);
printf("ltpa -> d : %s\n", ltpa->d);
return 0;
}
结果
ltpa -> a : 123456789012345678901234
ltpa -> b : 1
ltpa -> c : 2345678901234
ltpa -> d : 78901234
我不明白为什么会这样。
为什么 char a 包含整个字符串,即使 a 的大小只有 10。
我想将 1234567890 包含到一个 1 到 b,23456 到 c,其余到 d
【问题讨论】: