首页 > 解决方案 > 结构字段的内存分配错误

问题描述

附上最小的例子:

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。

我在这里缺少什么?

标签: cstructmemory-management

解决方案


%s用于打印字符串(以空字符结尾的字符序列),它需要一个指向char*字符串第一个元素的指针。

您应该使用%d以十进制打印int


推荐阅读