对字符串指针使用strcpy()报错,如何解决?(语言-c语言)

给字符串指针p分配空间后,strcpy拷贝字符串内容会写入错误

#include<stdio.h>
#include<string.h>
int main() {
    char* p = (char *)malloc(sizeof(char)*100);
    strcpy(p, "qwerasd");
    return 0;
}

img

img


将p改为数组p

      char p[100];
    strcpy(p, "qwerasd");

编译就能通过

p指针明明都指向了一片空的内存,为什么无法拷入字符串?

你意思是用char *p是编译报错吗?贴一下错误提示信息
代码测试没有问题啊