c - 结构字段的内存分配错误
问题描述
附上最小的例子:
struct MyStruct {
int a;
};
void testFun(struct MyStruct* testStruct) {
printf("a: %s", testStruct->a);
};
void main(){
struct MyStruct testStruct = { .a = 1 };
testFun(&testStruct);
};
这让我明白:test.exe 中的 0x791428BC (ucrtbased.dll) 抛出异常:0xC0000005:访问冲突读取位置 0x00000001。
我在这里缺少什么?
解决方案
%s
用于打印字符串(以空字符结尾的字符序列),它需要一个指向char*
字符串第一个元素的指针。
您应该使用%d
以十进制打印int
。
推荐阅读
- scala - 如何将 F[Either[A, B]] 转换为 Either[F[A], F[B]]
- android - Glide 显示旧加载的图像而不是新的
- react-native - 反应本机重用组件问题,未调用 componentDidMount
- windows - 如何从命令中提取用户名作为变量
- javascript - String.split 函数无法正常处理某些文本
- python - 我想要超链接到相同长度的excel中的一列的链接列表
- c++ - 置换二维数组中的元素
- python - 为什么即使我使用 sparse_categorical_crossentrpy,我也会收到“收到超出 [0, 1) 有效范围的标签值 6”?
- perl - 如何在使用不存在的哈希键声明数组后使 Perl 死亡
- python - 如果所需的文本也在单元格中,则尝试在表格单元格中选择链接文本